Exec-Maven-Plugin Native Bundle

e_Lap

Commander
Registriert
Apr. 2013
Beiträge
2.213
Moin,

ich kriege es aktuell nicht gebacken mit dem Exec-Maven-Plugin (Codehaus) ne jar (javafx App)zu deployen die nen jre / jdk enthält, sodass die App auch auf einem Rechner ohne installiertem Java ausgeführt werden kann.

Ich finde im Netz keine Dokumentationen zu diesem Plugin (Ist aber weit verbreitet kurioser weise), daher weiß ich nicht, wie genau ich die "Arguments" aufbauen muss. Eventuell hat ja hier jemand damit Erfahrung.
Hier meine aktuelle pom Plugin Config:

Code:
<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.4.0</version>
                <executions>             
                    <execution>
                        <id>create-bundle</id>
                        <phase>install</phase>
                        <goals>
                            <goal>java</goal>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <executable>
                                "${env.JAVA_HOME}/bin/javapackager"
                            </executable>
                            <arguments>
                                <argument>-deploy</argument>
                                <argument>-native</argument>
                                <argument>-appclass</argument>
                                <argument>"${mainClass}"</argument>
                                <argument>-classpath</argument>
                                <argument>org.springframework:spring-core:3.2.14.RELEASE
                                    org.springframework:spring-web:3.2.14.RELEASE
                                    org.springframework:spring-orm:3.2.14.RELEASE
                                    org.springframework:spring-tx:3.2.14.RELEASE
                                    org.hibernate:hibernate-core:5.1.0.Final
                                    mysql:mysql-connector-java:5.1.36
                                    org.hibernate:hibernate-c3p0:5.1.0.Final
                                    jstl:jstl:1.2
                                    com.opencsv:opencsv:3.5
                                    junit:junit:4.12
                                    log4j:log4j:1.2.17
                                    com.oracle:javafx:8
                                    net.sf.launch4j:launch4j:3.8.0
                                    org.apache.maven.surefire:surefire:pom:2.19.1
                                </argument>
                                <argument>-srcdir</argument>
                                <argument>"${project.build.directory}"</argument>
                                <argument>-outdir</argument>
                                <argument>"${project.build.directory}"</argument>
                                <argument>-outfile</argument>
                                <argument>"${project.artifactId}.jar"</argument>
                            </arguments>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <includeProjectDependencies>true</includeProjectDependencies>
                </configuration>
            </plugin>

mvn install fliegt direkt bei -classpath raus.
Im Moment bin ich hier total aufgeschmissen.
Eine Alternative steht nicht zur Wahl - mein Arbeitgeber verlang das exec-maven-plugin fürs zukünftige, einfache Deployment. .exe als Installer konnte ich bereits über Intellij builden.

Danke schon mal im Voraus.
 
Hab Spring mal geupdated. Ändert aber nichts an meinem Problem. Trotzdem danke für den Input!

€: Ich habs mal aufs minimum runtergebrochen:

Code:
<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.4.0</version>
                <executions>           
                    <execution>
                        <id>create-bundle</id>
                        <phase>install</phase>
                        <goals>
                            <goal>java</goal>
                            <goal>exec</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <includeProjectDependencies>true</includeProjectDependencies>
                    <executable>
                        "${env.JAVA_HOME}/bin/javapackager"
                    </executable>
                    <arguments>
                        <argument>-deploy</argument>
                        <argument>-native</argument>
                    </arguments>
                    <mainClass>${mainClass}</mainClass>
                </configuration>
            </plugin>

Aktueller Fehler:
Error: Missing argument: -srcfiles (-srcdir)

Damit gings eigentlich inital auch los. Mein Versuch dies zu lösen, lässt sich oben entnehmen. Die Arguments scheinen aber nie der richtigen Form zu entsprechen.

Füge ich nun

Code:
<argument>-srcdir</argument>
<argument>${project.build.directory}/classes</argument>

hinzu, kriege ich den Fehler:

Error: Unknown argument: -deploy

Ich steige da echt nicht durch...
 
Zuletzt bearbeitet:
Zurück
Oben