Tim*_*dik 3 build version bamboo maven
我需要通过http响应从我的web java应用程序发送构建号到前端.但是,在构建时设置它的最佳和正确方法是什么?我在竹子上使用maven.我知道我可以将版本号传递给maven.但我不确定接下来的步骤.我只考虑从maven执行ant,从ant将属性文件写入属性文件,并使用java app中的资源读取它.请给出一些建议.谢谢
And*_*nov 10
我认为制作版本文件没有问题(我们在项目中使用这种方法).如果您知道${build.version}
在构建时将拥有某些属性(fe ),则可以使用过滤来实现目标.
1)src/main/resources
使用以下内容创建版本文件
Version: ${build.version}
Run Code Online (Sandbox Code Playgroud)
2)将以下内容添加到您的pom.xml:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
Run Code Online (Sandbox Code Playgroud)
3)建立项目.过滤的版本文件应该出现在target/classes
.
我会将您的版本号作为manifest.mf的一部分.如果您打算使用SVN版本(或任何其他SCM,您只需要找到相应的插件)作为版本号,您可以使用maven-svn-revision-number-plugin和maven-war-plugin.
以下是如何将其与SVN一起使用的示例:
<plugin>
<groupId>com.google.code.maven-svn-revision-number-plugin</groupId>
<artifactId>svn-revision-number-maven-plugin</artifactId>
<version>1.13</version>
<executions>
<execution>
<goals>
<goal>revision</goal>
</goals>
</execution>
</executions>
<configuration>
<entries>
<entry>
<prefix>scm</prefix>
</entry>
</entries>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifestEntries>
<SCM-Revision>${scm.revision}</SCM-Revision>
</manifestEntries>
</archive>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后从Controller/Servlet中读取它:
ServletContext application = getServletConfig().getServletContext();
InputStream inputStream = application.getResourceAsStream("/META-INF/MANIFEST.MF");
Manifest manifest = new Manifest(inputStream);
Attributes attr = manifest.getMainAttributes();
String value = attr.getValue("SCM-Revision");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
10363 次 |
最近记录: |