2010-02-08 38 views
35

我有一個包含maven中5個模塊的項目。現在,當我進行「mvn clean install」時,它會生成一個耳朵,其中包含兩個罐子,一個戰爭和一個來自其他模塊的sar。使用Maven從文件名中刪除版本號

所有的文件名包含版本,例如,projectX創建入耳式2.0.0.ear,projectX創建客戶端-2.0.0.jar等

我需要重新命名的罐子中的一個和最後的耳朵省略文件名中的版本。它應該是這樣的:

projectx-ear.ear 
| 
+-- projectx-client.jar 
| 
+-- projectx-misc-2.0.0.jar 
| 
+-- projectx-sar-2.0.0.sar 
| 
\-- projectx-web-2.0.0.web 

現在,我使用下面的插件來構建: Maven的編譯器插件和Maven釋放小插件

會是什麼實現的最佳途徑我期望的結果?

回答

19

在你耳邊模塊,您可以使用project.build.finalName元素也可以配置它支持finalName可選參數maven-ear-plugin 。要配置捆綁jar的最終名稱,您需要定義一個jarModule併爲其設置bundleFileName屬性。

最終配置可能看起來就像這樣(我將演示如何在插件配置此處設置的最終耳朵名):

<project> 
    [...] 
    <dependencies> 
    <dependency> 
     <groupId>yourgroupid</groupId> 
     <artifactId>projectx-client</artifactId> 
     <version>2.0.0</version><!-- not mandatory if inherited --> 
    </dependency> 
    [...] 
    </dependencies> 
    [...] 
    <build> 
    [...] 
    <plugins> 
     [...] 
     <plugin> 
     <artifactId>maven-ear-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <finalName>projectx-ear</finalName> 
      <modules> 
      <jarModule> 
       <groupId>yourgroupid</groupId> 
       <artifactId>projectx-client</artifactId> 
       <bundleFileName>anotherName.jar</bundleFileName> 
      </jarModule> 
      </modules> 
     </configuration> 
     </plugin> 
     [...] 
</project> 
+0

謝謝,正是我需要的! – Bani 2010-02-09 17:12:08

+2

截至目前,該插件的更高版本(我使用2.6)允許您在'' no-version內指定刪除模塊的版本號(所以你不必定義它們中的每一個)。不過,人的名字不受此影響。 – SJuan76 2016-07-13 13:17:18

82

您可以通過在你的POM中指定這樣的finalName屬性實現這一點:

<build> 
    <finalName>${project.artifactId}</finalName> 
</build> 
+0

就像一個魅力。謝謝! – 2017-07-11 12:24:48

+0

由於這種一行的答案我愛的計算器:) 謝謝! – lord5et 2018-03-07 14:46:22