buildnumber-maven-plugin如何工作?

时间:2018-08-10 18:44:50

标签: java maven buildnumber-maven-plugin

我具有以下配置来创建内部版本号并将其保存在MANIFEST.MF中。生成过程将生成一个buildNumber.properties,并从中跟踪上一次生成。但是,我认为应该将此文件提交回GIT,作为存储buildNumber的一部分。这种理解正确吗?还是有其他方法可以实现这一目标?

建立目标

mvn clean package

pom.xml

<scm>
<connection>scm:git:https://abc.xyz.com/#projects/scm/DOCKER-AbcServer.git</connection>
</scm>

<plugins>
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.4</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <goals>
          <goal>create</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <format>{0,number}</format>
      <items>
        <item>buildNumber0</item>
      </items>
      <doCheck>true</doCheck>
      <doUpdate>true</doUpdate>
    </configuration>
  </plugin>
  <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.1.0</version>
    <configuration>
      <archive>
        <manifest>
          <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
        </manifest>
        <manifestEntries>
          <Build-Number>${project.version}-r${buildNumber}</Build-Number>
          <Build-SCMBranch>${scmBranch}</Build-SCMBranch>
          <Build-Time>${maven.build.timestamp}</Build-Time>
        </manifestEntries>
      </archive>
    </configuration>
  </plugin>
</plugins>

buildNumber.properties

#maven.buildNumber.plugin properties file
#Fri Aug 10 10:49:49 PDT 2018
buildNumber0=2

1 个答案:

答案 0 :(得分:0)

如果您提交buildNumber.properties文件,则如果您在结帐中进行构建并且其他人进行了构建,则您将获得一个在每个开发人员和持续集成构建 EXCEPT 之间递增的内部版本号。你们都将增加内部版本号。当你们中的一个提交文件并推送时,你们中的哪个获胜?该项目当前的内部版本号是什么?

我认为将增量内部版本号视为“特定克隆的内部版本号”比在整个项目中保持不变的版本更为准确。

如果使用git或svn或与buildnumber集成的任何其他SCM,则可以将SCM提交ID用作内部版本号,而不是整数。它由SCM固有地存储,并准确显示了构建的提交内容。我更喜欢这样做,因为通过查看清单文件或JAR名称,我可以立即跳至正确的提交以对问题进行分类或确定用户是否正在使用过时的版本。

另一个好的问题涵盖了buildnumber插件的一些细节,并提供了其他资源:Maven build number plugin, how to save the build number in a file?