2016-03-12 167 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

相關問題