2016-03-12 165 views
0

我想分发包含alle maven依赖关系的JavaFX jar文件。然而,我的只有正在工作的构建,将maven依赖项提取为.jar文件。IntelliJ JavaFX构建工件与打包的Maven依赖项

Output directory

Artifact

我的POM文件包含以下行:

<?xml version="1.0" encoding="UTF-8"?> 

http://maven.apache.org/xsd/maven-4.0.0.xsd“> 4.0.0

<groupId>groupId</groupId> 
<artifactId>MusikPlayer</artifactId> 
<version>1.0-SNAPSHOT</version> 

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

<dependencies> 
    <dependency> 
     <groupId>com.google.code.gson</groupId> 
     <artifactId>gson</artifactId> 
     <version>2.6.2</version> 
    </dependency> 
    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.38</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
    </dependency> 
    <dependency> 
     <groupId>org</groupId> 
     <artifactId>jaudiotagger</artifactId> 
     <version>2.0.3</version> 
    </dependency> 
</dependencies> 

有没有什么办法可以将JavaFX jar文件与所有的maven依赖关系一起发布,因此我只有1个jar文件?

回答

0

你需要的是javafx-maven-plugin

<plugin> 
    <groupId>com.zenjava</groupId> 
    <artifactId>javafx-maven-plugin</artifactId> 
    <version>8.4.0</version> 
    <configuration> 
     <mainClass>your.package.with.Launcher</mainClass> 
    </configuration> 
</plugin> 

随着your.package.with.Launcher是你Application类。这个插件还允许你创建本地包。为了便于使用,请查看他们的page以快速将最常见情况下的插件配置组合在一起。

通过上述配置,您可以使用mvn jfx:jar构建一个可执行的jar文件。该jar文件将位于target/jfx/app

+0

根据他们的网站:“这是基地可执行JavaFX jar内置的地方,以及任何相关库(位于'lib'子目录中)。”这正是我试图避免的! – zFr3eak

相关问题