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

use*_*387 67 maven

在我的一个项目中,我需要构建一个没有版本的项目.我有一个项目调用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>-->
Run Code Online (Sandbox Code Playgroud)

pru*_*nge 144

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

<project>
    ...
    <build>
        ...
        <finalName>${project.artifactId}</finalName>
        ...
    </build>
    ...
</project>
Run Code Online (Sandbox Code Playgroud)

或者在旧版本的maven中:

        ...
        <finalName>${artifactId}</finalName>
        ...
Run Code Online (Sandbox Code Playgroud)

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

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

  • 至少从Maven 3.0.3开始,$ {artifactId}被弃用,而不是$ {project.artifactId}. (7认同)
  • @prunge:谢谢你的回答.您是否知道这样做,因为它影响到本地存储库和远程存储库中的文件名. (2认同)

kuh*_*yan 11

在maven war插件中构建,改变

<warName> ${artifactId} </warName>
Run Code Online (Sandbox Code Playgroud)
        <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>
Run Code Online (Sandbox Code Playgroud)