2 votes

JavaFX Maven Plugin : com.zenjava - jfx:jar pour inclure toutes les dépendances ?

Existe-t-il un moyen d'inclure toutes les dépendances DANS le jar généré en exécutant l'objectif jfx:jar pour le plugin maven javafx ?

Actuellement, toutes les dépendances du projet sont stockées dans un dossier appelé "lib". enter image description here

Je cherche un moyen de générer le jar exécutable javafx comme le font les paramètres Projet > Export > Runnable Jar d'Eclipse : enter image description here

Quelques autres informations : Actuellement, si j'utilise jfx:jar, le jar généré fait ~150kb et ne s'exécutera pas si les librairies de dépendance ne sont pas présentes.

Cependant, si j'utilise l'option d'exportation de jar exécutable d'Eclipse montrée ci-dessus, le jar généré fait ~40,000kb et peut s'exécuter tout seul.

Mon pom :

    <properties>
        <jfx.output.dir>${project.build.directory}/application/</jfx.output.dir>
    </properties>
    .
    .
    .
            <plugins>
                <plugin>
                    <groupId>com.zenjava</groupId>
                    <artifactId>javafx-maven-plugin</artifactId>
                    <version>8.7.0</version>
                    <configuration>
                        <mainClass>my.main.class.Main</mainClass>
                        <jfxAppOutputDir>${jfx.output.dir}</jfxAppOutputDir>
                        <allPermissions>true</allPermissions>
                    </configuration>
                </plugin>
            </plugins>

3voto

iamkenos Points 559

Cela fait un moment, mais j'ai décidé de répondre à cette question.
J'ai résolu mon problème en utilisant un autre plugin qui ne m'était pas familier au moment où la question a été posée.

J'espère que cela aidera d'autres personnes !

     <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
            <execution>
                <id>create-executable</id>
                <phase>package</phase>
                <goals>
                    <goal>single</goal>
                </goals>
            </execution>
        </executions>
        <configuration>
            <outputDirectory>${test.pack.dir}</outputDirectory>
            <appendAssemblyId>false</appendAssemblyId>
            <descriptorRefs>
                <descriptorRef>jar-with-dependencies</descriptorRef>
            </descriptorRefs>
            <archive>
                <manifest>
                    <mainClass>my.main.class.Main</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>

0voto

        <plugins>
            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>8.7.0</version>
                <configuration>
                    <mainClass>my.main.class.Main</mainClass>
                    <jfxAppOutputDir>${jfx.output.dir}</jfxAppOutputDir>
                    <allPermissions>true</allPermissions>
                </configuration>
            </plugin>
        </plugins>

Ce plugin n'aide pas à regrouper le packing natif dans ubuntu .ie .deb file ne fonctionne pas. La communauté Java devrait travailler sur l'empaquetage natif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X