Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何构建没有版本的maven项目?_Maven - Fatal编程技术网

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

如何构建没有版本的maven项目?,maven,Maven,我有一个maven项目,我想在没有版本的情况下构建它 现在,当我使用maven构建项目时,它创建了这个commonjerseylib-1.0.war,但我需要创建这个commonjerseylib.war 除此之外,我从pom.xml中删除了标记,但默认情况下,Maven仍然使用1.0版的war创建 Mypom.xml: <modelVersion>4.0.0</modelVersion> <groupId>commonjerseyli

我有一个maven项目,我想在没有版本的情况下构建它

现在,当我使用maven构建项目时,它创建了这个
commonjerseylib-1.0.war
,但我需要创建这个
commonjerseylib.war

除此之外,我从
pom.xml
中删除了
标记,但默认情况下,Maven仍然使用1.0版的
war
创建

My
pom.xml

      <modelVersion>4.0.0</modelVersion>
      <groupId>commonjerseylib</groupId>
      <artifactId>commonjerseylib</artifactId>
      <packaging>ear</packaging>
      <name>commonjerseylib</name>
      <!--<version>1.0</version>-->
4.0.0
普通球衣
普通球衣
耳朵
普通球衣

如何在没有版本的情况下构建它?

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

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

...
...
${project.artifactId}
...
...
或者在maven的旧版本中:

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


有关更多信息,请参阅。

在maven war插件的内部版本中,更改

<warName> ${artifactId} </warName>
${artifactId}


..........
org.apache.maven.plugins
maven战争插件
2.3
假的
${artifactId}
.............

我用pom中下面的代码行修复了它

... ... ${project.artifactId} ...
…太完美了,干净又干净!至少在Maven 3.0.3中,${artifactId}被弃用,取而代之的是${project.artifactId}。@prunge:谢谢你的回答。您知道如何处理本地存储库和远程存储库中的文件名。请注意,从命令行重写(如
-Dproject.build.finalName=where
)不起作用。如果您希望能够在命令行上指定jar的名称,请参阅
        <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>