Maven 配置将项目版本放在 war 文件中的文件名上,以 'unzip -l app.war' 读取

Maven config to put project version on a file name inside war file to read with 'unzip -l app.war'

如何配置我的 pom 文件,以便 maven 自动构建 war,包括一个使用项目版本号命名的文件,例如版本 3.1.2.txt ?

这是为了便于在部署期间使用。

由于各种原因,我无法将 war 文件命名为 MyApp-3.1。2.war。

如果那不可能,我将不得不像这样将版本号写入清单 How to put maven project version in war file manifest? 并确定 linux cmd 解压、读取和处理清单文件将是。

你可以这样做:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>run</goal>
                    </goals>
                    <phase>prepare-package</phase>
                    <configuration>
                        <tasks>
                            <mkdir dir="${project.build.directory}/${project.build.finalName}" />
                            <touch file="${project.build.directory}/${project.build.finalName}/version-${project.version}.txt" />
                        </tasks>
                    </configuration>                        
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

我在 GitHub 上创建了一个工作示例: https://github.com/StefanHeimberg/Whosebug-27963488