如何组合javafx-maven-plugin和maven-assembly-plugin?

时间:2017-04-26 13:51:07

标签: maven javafx maven-assembly-plugin

我有一个JavaFx项目,我想减少到一个jar文件。 我的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>

和一个程序集插件:

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

当我调用“mvn package”时,正在构建一个jar文件,但它不包含jfx-jar文件,但包含某种“jar wihout jfx support”-version。 如何告诉Maven Assembly Plugin使用jfx插件中的jar版本(位于jfxAppOutputDir(../ jfx / app /))?

1 个答案:

答案 0 :(得分:0)

自己发现问题。

  1. 带有“无主要清单属性”的jar文件-error是由maven-jar-plugin创建的。但是可以将其配置为省略该创建。如果您有兴趣,请查看:"what-is-the-best-way-to-avoid-maven-jar"
  2. 程序集插件正常工作。这都怪我。我认为程序集插件使用所有依赖项创建一个jar文件,包括所有资源文件(资源文件夹中的所有文件)。我的错。 “jar-with-dependencies”包括属于该项目的所有罐子,仅此而已。