Maven插件:buildnumber-maven-plugin

某些情况下(这种情况一般很少见),使用maven构建项目时,需要一个不重复的序列号,比如说,打包时,包名称以当前构建时间结尾,或者每次生成的jar包中包含唯一的序列号,等等;

这个时候,就用到了buildnumber插件,官方网址:

http://mojo.codehaus.org/buildnumber-maven-plugin/index.html

该插件能按照指定的方案生成序列号;首先引入该插件


<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>buildnumber-maven-plugin</artifactId>
	<version>1.2</version>
</plugin>

常用以下两个目标:
buildnumber:create(基于SCM版本生成)

buildnumber:create-timestamp(基于系统时间生成)
两个目标都默认绑定在initialize生命周期;其中create-timestamp目标是1.0-beta-5版本新增;具体参数就不多说了,可以直接看上面的链接。

下面是应用这个插件生成的序列号的例子:


<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifactId>buildnumber-maven-plugin</artifactId>
	<version>1.2</version>
	<configuration>
		<format>At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.</format>
		<items>
			<item implementation="Java.lang.Integer">7</item>
			<item>timestamp</item>
			<item>a disturbance in the Force</item>
		</items>
	</configuration>
	<executions>
		<execution>
			<phase>validate</phase>
			<goals>
				<goal>create</goal>
			</goals>
		</execution>
	</executions>
</plugin>


<configuration>
	<format>{0,number}.{1,number}.{2,number}</format>
	<items>
		<item>buildNumber0</item>
		<item>buildNumber1</item>
		<item>buildNumber2</item>
	</items>
</configuration>


<configuration>
	<format>{0,date,yyyy-MM-dd HH:mm:ss}</format>
	<items>
		<item>timestamp</item>
	</items>
</configuration>

产生的 ${buildNumber}值分别如下:

At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.

2.0.3

2020-01-08 15:22:55

下面是项目中maven该插件使用例子:

<plugin>
	<groupId>org.codehaus.mojo</groupId>
	<artifact>buildnumber-maven-plugin</artifact>
	<version>1.4</version>
	<configuration>
		<timestampFormat>yyyyMMddHHmm</timestampFormat>
	</configuration>
	<executors>
		<execution>
			<goals>
				<goal>create-timestamp</goal>
			</goals>
		</execution>
	</executors>
	<inherited>false</inherited>
</plugin>

入门君发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

Maven插件:buildnumber-maven-plugin