2013-03-20 41 views
2

通過Maven我試圖創建兩個單獨的罐子在每個(32位和64位)不同的DLL,但該DLL必須結束與相同的名稱在根罐。 我可以創建單獨的jar沒有問題,但似乎無法找到重命名文件的方法。Maven重命名文件打包到一個罐子

我試過把文件放在不同的目錄下,將它們複製到目標文件,然後建立罐子。但是因爲把它們放在不同的目錄中,它們不會在jar的根部結束。

我需要這個,因爲我正在創建一個Applet並使用Java Web Start進行部署。 dll需要位於不同的架構中,並針對不同的體系結構,並且需要位於jar根據JNLP規範的根目錄 。

開始位置:

\src 
    \main 
     \resources 
      rxtxSerial32.dll 
      rxtxSerial64.dll 

期望的最終位置:

native-dll-32.jar 
    rxtxSerial.dll (the 32 bit version) 

native-dll-64.jar 
    rxtxSerial.dll (the 64 bit version) 

爲了讓我使用maven-JAR-插件

  <plugin> 
      <artifactId>maven-jar-plugin</artifactId> 
      <executions> 
       <execution> 
       <id>native-dll-64</id> 
       <goals><goal>jar</goal></goals> 
       <phase>package</phase> 
       <configuration> 
        <classifier>native-dll-64</classifier> 
        <includes> 
        <include>**/rxtxSerial64.dll</include> 
        </includes> 
       </configuration> 
       </execution> 
      </executions> 
     </plugin> 

任何幫助獨立罐子不勝感激。也許我需要一個全新的startegy?

+0

您可以使用Maven-Ant-Plugin重命名該文件,查看Ant的移動任務http://ant.apache.org/manual/Tasks/move.html – 2013-03-20 13:28:01

回答

1

我建議你爲這些創建兩個項目,因爲你想結束兩個jar文件。如果項目在構建中共享通用功能,則可以將其放入父POM文件中。

從一個項目中生成多個jar文件會導致大多數情況下出現問題 - 我通常會盡量避免這種情況。一個項目 - 一個神器,遵循這個規則已經幫了我幾次。

+0

謝謝 - 這確實是最簡單的答案。我現在有兩個獨立的項目,它們在src/main/resources中包含了自己特定的dll,並且毫不奇怪,現在我最終得到了兩個帶有正確內容的獨立jar。我會牢記你的「來自一個項目的多個罐子」對未來的評論。 – mdjja 2013-03-20 16:02:19

+0

很高興聽到這對你有用。如果它對你有幫助,歡迎自己上傳和/或接受我的回答。 – nwinkler 2013-03-20 16:05:08