是否有办法通过运行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>
已经有一段时间了,但我决定回答这个问题。
我通过使用另一个插件解决了我的问题,这个插件在问题发布时我并不熟悉。
希望这对别人有帮助!
<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社区应该致力于本机捆绑。