2012-03-06 69 views
45

在我的一個項目中,我需要構建一個沒有版本的項目。 我有一個項目通話commonjerseylib當我通過使用maven我得到commonjerseylib-1.0.war構建它,但我需要war文件名commonjerseylib.war如何在沒有版本的情況下使用maven構建項目

我從POM,但還是默認的Maven刪除版本標籤與1.0創建版。

預先感謝您

<modelVersion>4.0.0</modelVersion> 
    <groupId>commonjerseylib</groupId> 
    <artifactId>commonjerseylib</artifactId> 
    <packaging>ear</packaging> 
    <name>commonjerseylib</name> 
    <!--<version>1.0</version>--> 

回答

102

你總是需要一個項目一個版本號,但它是可以通過改變生成的包(JAR,WAR,EAR等)的名稱POM中的<finalName>元素。

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

或在舊版本的Maven的:

 ... 
     <finalName>${artifactId}</finalName> 
     ... 

默認情況下,finalName是${project.artifactId}-${project.version},但是這是可以改變到別的東西。這隻會影響在target目錄中創建的包的名稱;本地存儲庫中的文件名以及上傳到遠程存儲庫的文件名將始終具有版本號。

查看POM reference documentation瞭解更多信息。

在構建的Maven插件戰爭
+0

這是完美的,清澈乾淨! – Thomas 2013-10-17 08:57:57

+6

至少從Maven 3.0.3開始,$ {artifactId}已被棄用,以$ {project.artifactId}爲準。 – Glenn 2014-07-09 18:03:49

+0

@prunge:謝謝你的回答。你知道任何方式來做到這一點,因爲它影響到本地存儲庫和遠程存儲庫中的文件名。 – namalfernandolk 2015-04-21 09:33:19

6

,改變

<warName> ${artifactId} </warName> 

 <build> 
      .......... 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <!-- web.xml is not mandatory since JavaEE 5 --> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
        <warName>${artifactId}</warName> 
       </configuration> 
      </plugin> 
     ............. 
     <build> 
相關問題