【问题标题】:Maven config to put project version on a file name inside war file to read with 'unzip -l app.war'Maven配置将项目版本放在war文件中的文件名上,以使用'unzip -l app.war'读取
【发布时间】:2015-03-13 20:23:17
【问题描述】:

如何配置我的 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。

【问题讨论】:

    标签: java maven maven-3 war


    【解决方案1】:

    你可以这样做:

    <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/stackoverflow-27963488

    【讨论】:

    • 添加到 maven 的好工具 - 一种执行我猜想的任何东西而无需编写插件的好方法。我现在唯一的小问题是,当我运行war:war 时,prepare-package 阶段没有执行,但我想 maven 文档对此会很清楚。谢谢。
    • 执行 mvn clean package...这将经历 maven 的 clean 和默认生命周期...使用 package 您的执行将在默认生命周期的 package 阶段停止。
    • 在这里我找到了一个很好的关于 maven 生命周期的介绍:youtube.com/watch?v=i2xWZMH_GZs&spfreload=10
    猜你喜欢
    • 2011-08-12
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 2011-11-01
    相关资源
    最近更新 更多