2014-09-19 59 views
1

我終於得到了Maven構建這個POM一個JavaFX可執行的JAR:如何在構建JavaFX可執行文件時複製Maven中的本地jar文件?

<dependencies> 

    <dependency> 
     <groupId>commons-configuration</groupId> 
     <artifactId>commons-configuration</artifactId> 
     <version>1.7</version> 
    </dependency> 

    <dependency> 
     <groupId>net.sf.opencsv</groupId> 
     <artifactId>opencsv</artifactId> 
     <version>2.0</version> 
    </dependency> 

    <dependency> 
     <groupId>ProtocolAnalyzer</groupId> 
     <artifactId>com.protocolanalyzer.api</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${project.basedir}/libs/Protocol-decoder.jar</systemPath> 
    </dependency> 

    <dependency> 
     <groupId>ProtocolAnalyzer</groupId> 
     <artifactId>bluecove</artifactId> 
     <version>1.0</version> 
     <scope>system</scope> 
     <systemPath>${project.basedir}/libs/bluecove-2.1.1-SNAPSHOT.jar</systemPath> 
    </dependency> 

</dependencies> 

<build> 
    <plugins> 

     <plugin> 
      <groupId>com.zenjava</groupId> 
      <artifactId>javafx-maven-plugin</artifactId> 
      <version>8.1.1</version> 
      <configuration> 
       <mainClass>com.andres.multiwork.pc.Main</mainClass> 
      </configuration> 
     </plugin> 

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

    </plugins> 
</build> 

這完美的作品:我得到一個可執行的JAR和我罐子的同一目錄下所有的庫都複製一個lib文件夾。

但我有兩個本地罐(Protocol-decoder.jarbluecove-2.1.1-SNAPSHOT.jar),我添加爲依賴關係。但是,它們不會被複制到lib文件夾中,也不會被添加到jar中清單中的類路徑中。

我是Maven的新手,但我認爲maven-resources-plugin是將相關性複製到lib文件夾的插件。我如何告訴Maven或插件也複製我的本地依賴項。這可能沒有創建一個本地Maven存儲庫,並在那裏添加我的罐子?

回答

0

您正在尋找maven-dependency-plugin,目標複製依賴項。

<plugin> 
    <artifactId>maven-dependency-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>copy-dependencies</id> 
     <phase>package</phase> 
     <goals> 
     <goal>copy-dependencies</goal> 
     </goals> 
     <configuration> 
     <outputDirectory>lib</outputDirectory> 
     </configuration> 
    </execution> 
    </executions> 
</plugin> 
+0

我嘗試添加此:http://pastebin.com/jCMtvgck和運行'清潔JFX:jar'但還是庫不被複制 – Andres 2014-09-19 16:08:39

+0

你想輸出目錄設置爲庫。 – Grod 2014-09-19 16:19:15

+0

好吧,我將'outputDirectory'設置爲'$ {build.directory}/jfx/app/lib',並且所有的jar都被複制,但jar中的'class-path'仍然不包含我的本地罐子 – Andres 2014-09-19 16:39:28

相關問題