Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.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
Java Maven:如何为项目重命名war文件?_Java_Maven - Fatal编程技术网

Java Maven:如何为项目重命名war文件?

Java Maven:如何为项目重命名war文件?,java,maven,Java,Maven,我有一个项目bird,在pom.xml <groupId>com.myorg</groupId> <artifactId>bird</artifactId> <version>1.0-SNAPSHOT</version> <packaging>pom</packaging> <name>bird</name> <module

我有一个项目
bird
,在
pom.xml

   <groupId>com.myorg</groupId>
    <artifactId>bird</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>bird</name>

    <modules>
        <module>persistence</module>
        <module>business</module>
        <module>service</module>
        <module>web</module>
    </modules>
com.myorg
鸟
1.0-快照
聚甲醛
鸟
坚持不懈
商业
服务
网状物
和web模块

   <parent>
        <artifactId>bird</artifactId>
        <groupId>com.myorg</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

    <artifactId>web</artifactId>
    <packaging>war</packaging>  

鸟
com.myorg
1.0-快照
网状物
战争
web模块创建名为
web-1.0-SNAPSHOT.war的war文件

如何使用maven将其重命名为
bird.war

您需要配置war插件:

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <warName>bird.war</warName>
        </configuration>
      </plugin>
    </plugins>
  </build>
  ...
</project>

...
org.apache.maven.plugins

您可以在生成war的web模块中使用以下内容:

<build>
  <finalName>bird</finalName>
 . . .
</build>

鸟
. . .

这将导致在使用目标“war:war”时创建一个名为bird.war的文件。

如果使用maven project,则可以按照以下步骤修改.war文件名

打开maven项目的pom.xml文件并转到标记

  • 在该标签中,请在此标签之间给出所需的名称:

    示例:
    krutik

    部署此.war后,您将能够使用访问url:

  • 如果您想使用斜杠'/'访问url,那么您必须 要指定名称,请如下所示:

    e.x.:
    krutik#maheta

    部署此.war后,您将能够使用访问url:


  • 查找pom.xml>项目标记>构建标记

    我想要下面的解决方案

    <artifactId>bird</artifactId>
    <name>bird</name>
    
    <build>
        ...
        <finalName>${project.artifactId}</finalName>
      OR
        <finalName>${project.name}</finalName>
        ...
    </build>
    
    鸟
    鸟
    ...
    ${project.artifactId}
    或
    ${project.name}
    ...
    

    为我工作^^

    这有用吗?当我以“bird.war”的名称编译我的项目时,我得到了一个名为“bird.war.war”的war。@Kalaschni只是使用“bird”,而不是“bird.war”——各种构建插件都会自动添加适当的文件扩展名(war、jar、ear),或者更一般地说,我们可以使用:
    ${project.artifactId}
    这个答案解决了我的问题,即子模块的war是用父模块的名称生成的,这是我不想要的。问题是在父POM中设置了元素。删除该元素会生成具有正确子模块名称的war文件。在IDEA 20156 2.4中,我遇到了另一个问题,即每次我尝试在Payara Glassfish 4.1上部署时,它都会生成旧的war文件。当发生这种情况时,打开模块设置->工件->输出布局,并将war文件重命名为您想要的结果。我之所以需要这样做,是因为IDEA中的上下文根会随着war文件名的变化而变化,当您在.properties file.FYI中配置了不同的文件时,这是一个难题:这个答案不再有效(因为maven war plugin版本3.0.0及更高版本)。看见可以工作(至少在3.2.3中的war插件中可以),但它总是附加“-.war”,其中默认为空,可以在内部设置。我使用${project.build.finalName}##${buildDateTimeFile}和BuildHelperMaven插件设置的“buildDateTimeFile”来获得“myApp##2020-05-29_10-24-00.war”。如果一次创建多个war文件(dev/test/prod),这尤其有用。