2012-03-06 67 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> 
相关问题