如何用没有版本的maven构build项目

在我的一个项目中,我需要构build一个没有版本的项目。 我有一个项目调用commonjerseylib当我通过使用maven构build它我得到commonjerseylib-1.0.war但我需要战争文件名commonjerseylib.war

我从pom中删除版本标签,但默认情况下,maven正在创build1.0版本。

先谢谢你

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

2 Solutions collect form web for “如何用没有版本的maven构build项目”

您将始终需要项目的版本号,但可以通过POM中的<finalName>元素更改生成的包(JAR,WAR,EAR等)的<finalName>

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

或者在老版本的maven中:

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

默认情况下,finalName是${project.artifactId}-${project.version} ,但是这可以改成别的东西。 这只会影响在target目录中创build的包的名称; 本地存储库中的文件名以及上传到远程存储库的文件名将始终具有版本号。

有关更多信息,请参阅POM参考文档 。

在maven战争插件build立,改变

 <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>