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

时间:2012-03-06 23:19:25

标签: maven maven-2 version war pom.xml

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

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

3 个答案:

答案 0 :(得分:130)

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

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

或旧版本的maven:

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

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

有关详细信息,请参阅POM reference documentation

答案 1 :(得分:9)

在构建中的maven war插件中,更改

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

答案 2 :(得分:0)

我使用pom中的以下代码行对其进行了修复

... ... $ {project.artifactId} ... ...