使用 Maven 将版本文件放入 EAR 或 WAR
Posted
技术标签:
【中文标题】使用 Maven 将版本文件放入 EAR 或 WAR【英文标题】:Putting version file into EAR or WAR using Maven 【发布时间】:2015-06-22 18:09:51 【问题描述】:我的公司正试图找到一种方法,使用 Maven 将某种类型的版本文件或版本控制放在 EAR 和/或 WAR 上。
我们在 Maven 构建中需要的是从文件中取出版本号,并以某种方式将其放入 EAR 或 WAR 中,或者有更好的方法..
我想听听其他人关于你是如何做到这一点的。
我们正在使用 Maven、Git、Bamboo 等。所以如果 Git 能以某种方式将版本或提交号放入一个文件中,然后 Maven 可以使用它会很棒
【问题讨论】:
【参考方案1】:你至少有以下选择:
自定义清单条目。
war 插件允许您将一些信息添加到清单文件中。使用页面上有一些示例:https://maven.apache.org/plugins/maven-war-plugin/examples/war-manifest-guide.html(注意:今天是 $project.version 而不是 $pom.version。 ear 插件具有指定清单文件或设置一些环境设置的选项:https://maven.apache.org/plugins/maven-ear-plugin/examples/specifying-env-entries-for-the-generated-application-xml.html
将值添加到属性文件并使用过滤器替换占位符。
在 src/main/resources 中创建一个简单的文本或属性文件,例如 application.properties:
app.version=$project.version app.description=$project.description
然后为该文件启用资源过滤:http://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html。 您还可以访问环境变量:$env.variable_name 并使用来自竹子的构建号(作为参数传递给构建)。
http://www.mojohaus.org/buildnumber-maven-plugin/ 之类的插件还允许您添加 SVN 修订号或 Git Sha1 提交哈希。
如果你使用的是发布插件,maven 会自己添加一些信息到发布的 jar 或 war 的 maven 文件夹中(在 meta-inf 文件夹内)。
【讨论】:
如果您也有兴趣通过 Web URL 阅读此类版本信息,例如http://example.com/versioninfo.txt
,您可以使用maven-war-plugin
过滤versioninfo.txt
模板和include the version file into the war。跨度>
以上是关于使用 Maven 将版本文件放入 EAR 或 WAR的主要内容,如果未能解决你的问题,请参考以下文章