创建多个war文件并用Maven重命名它们

Posted

技术标签:

【中文标题】创建多个war文件并用Maven重命名它们【英文标题】:Create multiple war files and rename them with Maven 【发布时间】:2022-02-03 04:56:33 【问题描述】:

对于第一部分:我想在构建 maven 项目时生成多个 war 文件。 第二部分:我想动态重命名这些文件。

例如:现在生成的文件名为 test.war。如果我想在单个构建中多次生成此文件,我希望文件的名称如下:test_1.war、test_2.war、test_3.war...

你们有什么想法可以实现吗?我也可以创建一个 .bat 文件来做这些事情,但我不太确定如何:)

谢谢

【问题讨论】:

检查this 谢谢,但不幸的是,这不适用于我的情况。我只有一个项目,有一个 web.xml,我想将此文件用于生成的所有文件。基本上我想做的是生成war文件的部分循环创建多个文件。 我强烈建议构建一个多模块的maven项目,其中每个war都是单个模块的输出。这是生成多个战争文件的答案。对于重命名,我认为创建配置文件是最好的解决方案,您可以参考this希望对您有所帮助 谢谢,确实拥有一个多模块项目会是更好的解决方案,但这意味着在我的情况下我会重复代码。我在想也许我可以做一个带有 for 循环的 .bat 文件,在其中我可以有类似“mvn clean install”之类的东西,但是这里出现了重命名问题,因为每次创建文件时它都会具有相同的名称跨度> 这里的基本问题是:为什么需要多个war文件?它们应该包含不同的文件吗?还是什么? 【参考方案1】:

不完全确定这是否有效,但您可能可以尝试以下方法:

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <executions>
        <execution>
            <id>test_1</id>
            <goals>
                <goal>war</goal>
            <goals>
            <configuration>
                <warName>test_1.war</warName>
            </configuration>
        </execution> 
        <execution>
            <id>test_2</id>
            <goals>
                <goal>war</goal>
            <goals>
            <configuration>
                <warName>test_2.war</warName>
            </configuration>
        </execution> 
    <executions>
  </plugin>

【讨论】:

【参考方案2】:

感谢您的所有回答。我设法使用如下所示的 .bat 文件创建了这些文件:

call mvn -DfinalName=test_1 package call mvn -DfinalName=test_2 package call mvn -DfinalName=test_3 package call mvn -DfinalName=test_4 package

在 pom.xml 中我添加了一个属性 &lt;finalName&gt;

<properties> <finalName>$project.artifactId-$project.version</finalName> </properties>

在构建部分我添加了这个:

<build> <finalName>$finalName</finalName> ... </build>

.

【讨论】:

以上是关于创建多个war文件并用Maven重命名它们的主要内容,如果未能解决你的问题,请参考以下文章

如何合并多个工作表并用工作表名称重命名列名?

在 Windows 批处理中使用创建日期和时间重命名文件

在 Unix 中根据模式重命名多个文件

在Ubuntu中按字母顺序重命名多个文件

命令提示符/批处理 - 使用顺序编号重命名多个文件

使用批处理解压缩和重命名文件 (Windows)