我的公司正试图找到一种方法,使用Maven在EAR和/或WAR上放置某种类型的版本文件或版本。
我们需要的是,我们所做的Maven Build是从文件中取出一个版本号并以某种方式将它放入EAR或WAR或者有更好的方法..
我想听听其他人如何做到这一点。
我们正在使用Maven,Git,Bamboo等。所以如果Git可以将版本或提交号放入一个文件中,然后Maven可以使用它就会很棒
答案 0 :(得分:3)
你至少有选择:
自定义清单条目。
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}并使用bamboo中的内部版本号(作为参数传递给构建版本)。
http://www.mojohaus.org/buildnumber-maven-plugin/之类的插件允许您添加SVN修订版号或Git Sha1 Commit Hash。
如果您正在使用发布插件,maven会将自己的一些信息添加到已发布的jar或war的maven文件夹中(在meta-inf文件夹中)。