如何组合JavaFXMaven插件和maven汇编插件?

如何组合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>

我有一个JavaFx项目,我想把它简化为一个jar文件。 My pom包含一个java fx插件:

      <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版本?

自己发现了问题

  • 带有“无主清单属性”错误的jar文件是由maven jar插件创建的。但可以将其配置为忽略该创建。如果您感兴趣,请查看:
  • 汇编插件工作正常。是我的错。我认为汇编插件创建了一个包含所有依赖项的jar文件,包括所有资源文件(资源文件夹中的所有文件)。我的错误。“带依赖项的jar”包括属于项目的所有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。(本机安装程序不适合我的情况,因为我只想向客户端显示一些功能,而不是安装(和卸载)应用程序)