2017-02-15 563 views
1

我對Maven + JavaFX比較新,我試圖用com.zenjava maven插件生成一個JavaFX可執行jar文件。JavaFX Maven插件:com.zenjava - 如何複製外部資源

我這個指南參考以下內容:
https://www.youtube.com/watch?v=wbjW8rYlook

我必須爲我的項目下列文件夾結構:
enter image description here

現在我想Maven構建過程中運行的配置jfx:jar和能夠生成一個jar文件,但我所需要的資源不會被複制到target/jfx/app文件夾下。

enter image description here

基本上,我想整個src/main/resources文件夾複製到target/jfx/app/resources。我該如何做到這一點?

一些信息:
src/main/resources/文件夾將包含不同種類的,我會在運行時需要的文件(Excel文件,PDF,HTMLS ...),而不僅僅是財產的文件。

在此先感謝。

============================================== ==========================
更新:
Yuri-M-Dias'的答案幫助。

不改變任何其他設置,我設法只是更新我的POM文件以做到這一點:

<build> 
    <resources> 
     <resource> 
      <directory>src/main/resources</directory> 
      <targetPath>../jfx/app/resources</targetPath> 
     </resource> 
    </resources> 



    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.5.1</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>com.zenjava</groupId> 
      <artifactId>javafx-maven-plugin</artifactId> 
      <version>8.7.0</version> 
      <configuration> 
       <mainClass>me.iamkenos.bayonetta.MainApp</mainClass> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

這肯定是工作,但我不知道這是否是最好的方式,因爲我有通過在<targetPath>../jfx/app/resources</targetPath>中使用「../」來作弊,將等待其他可能的答案。

回答

1

您可以使用resources關鍵字將Maven的輸出文件夾控制到特定的文件夾。例如,在我的項目:

<resources> 
     <resource> 
      <directory>src/main/java/view</directory> 
      <targetPath>view</targetPath> 
     </resource> 
    </resources> 

我迫使java/view文件夾的內容輸出到target/classes/view在這種情況下,因爲這就是我的JavaFX圖像和fxmls是。您可以對jfx/app/resources文件夾執行相同的操作。

至於複製文件夾,你可以看看official maven recommendation

+0

感謝您的提示!我做到了,但我不確定我所做的是我能做到的最好的解決方案。 (請參閱我的問題更新)。 在接受這個之前,我會等待更多可能的答案。 至於給出的鏈接,我實際上是在早期查看這個鏈接,但是我無法理解'maven-resources-plugin'的大部分內容,比如id,phase,configuration。我希望他們能在這個鏈接上加上更多的解釋,以幫助更清新。 再次感謝! – iamkenos