将自定义字段添加到buildnumber-maven-plugin生成的build.properties

时间:2018-01-05 22:36:04

标签: maven version-control buildnumber-maven-plugin

我使用buildnumber-maven-plugin在WAR工件中包含各种版本参数,以便在页面上显示。在我的pom.xml

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.4</version>
    <executions>
      <execution>
        <id>create-buildmeta</id>
        <phase>prepare-package</phase>
        <goals>
          <goal>create-metadata</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <doCheck>false</doCheck>
      <doUpdate>false</doUpdate>
      <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
    </configuration>
</plugin>

这会产生类似于:

的build.properties
#Created by build system. Do not modify
#Fri Jan 05 17:10:02 EST 2018
version=2.1.0-SNAPSHOT
revision=1234
name=myApp
timestamp=1515190202388

我想在文件中包含我svn info的更多字段,比如对分支进行更改的最后一个用户等。有没有办法配置它以及如何配置?

1 个答案:

答案 0 :(得分:1)

不幸的是,使用buildnumber-maven-plugin并不容易实现这一点正如您在source code中看到的那样,默认情况下只会生成您提到的四个属性:

version=2.1.0-SNAPSHOT
revision=1234
name=myApp
timestamp=1515190202388

我能想象使用buildnumber-maven-plugin实现目标的唯一方法是执行svn并存储属性中所需的信息(在示例last.changed.user中),您可以将其插入到配置中以下

<configuration>
    <doCheck>false</doCheck>
    <doUpdate>false</doUpdate>
    <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
    <properties>
        <user>${last.changed.user}</user>
    </properties>
</configuration>

这会产生一个额外的属性,给出如下结果:

version=2.1.0-SNAPSHOT
revision=1234
name=myApp
user=someUser
timestamp=1515190202388

不幸的是,我对maven的svn集成知之甚少,并举例说明如何在属性中存储所需的信息。