使用 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的主要内容,如果未能解决你的问题,请参考以下文章

使用 Maven 从文件名中删除版本号

如何将文件添加到 EAR META-INF 文件夹 - Maven

如何将maven项目版本放入war文件清单中?

在eclipse中编译项目,获取战争或耳朵或jar文件

Maven2:企业项目的最佳实践(EAR 文件)

如何让 Maven 将战争常见的所有罐子放在同一个 EAR 到 EAR 根目录中?