MAVEN 绑定SVN 版本号,并在web app中使用
在SVN 中的版本号, 如果需要使用,可以通过maven 插件注入到配置文件中,并在webapp启动时注入到应用中
plugin:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.0</version>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
<providerImplementations>
<svn>javasvn</svn>
</providerImplementations>
</configuration>
<dependencies>
<dependency>
<groupId>com.google.code.maven-scm-provider-svnjava</groupId>
<artifactId>maven-scm-provider-svnjava</artifactId>
<version>2.0.2</version>
</dependency>
<dependency>
<groupId>org.tmatesoft.svnkit</groupId>
<artifactId>svnkit</artifactId>
<version>1.8.6</version>
</dependency>
</dependencies>
</plugin>原理是使用javasvn provider 来访问SVN
然后在src/main/resources 下面添加一个build.properties
build.properties:
build.version=${version} # Maven version
build.revision=${buildNumber} # Source code revision number
build.timestamp=${timestamp} # long value of check in time这样在build之后,信息会添加到properties中
build.properties: build.version=1.2.3 build.revision=9876 build.timestamp=12345459
使用:
public class PageRequestInterceptor extends HandlerInterceptorAdapter {
@Value(“${build.version}”)
private String buildVersion;
@Value(“${build.revision}”)
private String buildRevision;
private DateTime buildTimestamp;
@Value(“${build.timestamp}”)
public void setBuildTimestamp(String timestamp) {
buildTimestamp = new DateTime(Long.parseLong(timestamp));
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
request.setAttribute(“buildVersion”, buildVersion);
request.setAttribute(“buildRevision”, buildRevision);
request.setAttribute(“buildDateTime”, buildTimestamp);这里还有一个问题,每次eclipse自动编译的时候,会把这些配置覆盖,所以需要添加一个plguin来把这些exclude
在POM中添加:
<pluginManagement>
<plugins>
<!-- This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<versionRange>[1.0,)</versionRange>
<goals>
<goal>create</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute>
<runOnIncremental>true</runOnIncremental>
</execute>
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
</plugins>
</pluginManagement>添加之后可以通过右键project->MAVEN->Lifecycle Mapping来验证
相关推荐
86276537 2020-11-19
wesai 2020-08-12
DataPythonVBA 2020-08-11
88266432 2020-08-11
绿豆饼 2020-07-28
chenkai00 2020-07-26
webpackvuees 2020-07-23
糊一笑 2020-07-04
pandaphinex 2020-06-11
TaoTaoFu 2020-06-09
gloria0 2020-06-09
applecarelte 2020-06-05
ajuan 2020-06-03
Justagreenonion 2020-05-30
GechangLiu 2020-05-25
ZGCdemo 2020-05-13
83206733 2020-04-22
zhaolisha 2020-05-06
Keepgoing 2020-05-06