如何组合JavaFXMaven插件和maven汇编插件?
我有一个JavaFx项目,我想把它简化为一个jar文件。 My pom包含一个java fx插件:如何组合JavaFXMaven插件和maven汇编插件?,maven,javafx,maven-assembly-plugin,Maven,Javafx,Maven Assembly Plugin,我有一个JavaFx项目,我想把它简化为一个jar文件。 My pom包含一个java fx插件: <plugin> <groupId>com.zenjava</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>8.1.4</version>
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.1.4</version>
<configuration>
<mainClass>application.Main</mainClass>
<jfxAppOutputDir>${project.build.directory}/jfx/app</jfxAppOutputDir>
</configuration>
<executions>
<execution>
<id>create-jfxjar</id>
<phase>package</phase>
<goals>
<goal>build-jar</goal>
</goals>
</execution>
</executions>
</plugin>
com.zenjava
javafxmaven插件
8.1.4
主应用程序
${project.build.directory}/jfx/app
创建jfxjar
包裹
构建jar
和一个汇编插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<!-- get all project dependencies -->
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<!-- MainClass in mainfest make a executable jar -->
<archive>
<manifest>
<mainClass>application.Main</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!-- bind to the packaging phase -->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven汇编插件
2.4.1
带有依赖项的jar
主应用程序
组装
包裹
单一的
当我调用“mvn包”时,正在生成一个jar文件,但它不包含JFXJAR文件,而是包含某种“不支持jfx的jar”版本。
我如何告诉Maven Assembly插件使用jfx插件(位于jfxAppOutputDir(../jfx/app/)中)的jar版本?自己发现了问题
“没有jfx支持的jar”是什么意思?由于JAR是JavaFX应用程序,因此它不必包含任何特殊内容。maven汇编插件对我来说很好(没有javafx maven插件)——我使用的是2.6版。一件可能相关的事情是源和目标JRE版本(在maven编译器插件设置中)。他们两人的名字一样。如果启动目标版本,则会收到一条错误消息:“无主清单属性”。target/jfx/app中的版本工作正常。请编辑您的问题,将完整的
pom.xml
以及清单文件包含在有问题的JAR中,好吗?另外/或者-可能尝试使用汇编插件版本2.6?@sillyfly JavaFX应用程序在清单中包含一些特殊的行,这就是“普通”可执行JAR之间的区别。。一般来说,在打包应用程序时,我会投反对票。当具有相同文件夹结构但不同文件内容的文件被合并时,您会遇到问题。@FibreFoX-我从来没有向我的JavaFX应用程序的JAR清单中添加过任何特殊内容。。。你能详细说明一下吗?这可能只在较旧版本(7?)的Java中才有必要吗?那么,您最终将资源文件放在了哪里?我很想看到一个pom,展示如何制作一个可执行的“胖”jar。(本机安装程序不适合我的情况,因为我只想向客户端显示一些功能,而不是安装(和卸载)应用程序)