提问者:小点点

JavaFX Maven Plugin: com.zenjava-jfx:jar以包含所有depeden?


是否有办法通过运行javafx maven插件的jfx: jar目标来将所有依赖项包含在生成的jar中?

其他一些信息:目前,如果我使用jfx: jar,生成的jar是~150kb,除非存在依赖库,否则不会运行。

但是,如果我使用上面显示的eclipse runnablejar导出选项,生成的jar约为40,000kb,可以自行运行。

我的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>

共2个答案

匿名用户

已经有一段时间了,但我决定回答这个问题。
我通过使用另一个插件解决了我的问题,这个插件在问题发布时我并不熟悉。

希望这对别人有帮助!

     <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>

匿名用户

        <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>

这个插件对在ubuntu. ie.deb文件中捆绑本机打包没有帮助。Java社区应该致力于本机捆绑。