识别构建工件的确切组件版本

如何为相当复杂的产品设置基于Jenkins的构建过程(使用Artifactory Pro进行工件存储),以便可以轻松识别其每个组件的版本/修订版? 其中一些组件可能是从其他组件(主要是聚合)创建的,因此需要依次识别这些子组件修订。 我不想一直构建和完整(大)产品,将其源代码与其一起存档,而是使用以前创建的工件。在开发过程中,他们可能会使用一段时间的SNAPSHOT版本。 在测试期间发现问题时,如何将其追溯到每个已完成产品组件的确切源控制修订以进行分析?我们不会将SVN用于所有内容,并且其他VCS没有Jenkins插件。 我们所做的一些工作基于Maven,但解决方案应该足够灵活,不需要在Jenkins中使用Maven项目。     
已邀请:
您可以使用maven-buildnumber-plugin从Subversion获取修订版号,并将此信息放入MANIFEST文件中。
      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.3.1</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
              </manifest>
              <manifestEntries>
                  <buildNumber>${buildNumber}</buildNumber>
              </manifestEntries>
            </archive>
          </configuration>
        </plugin>
如果不存在SVN工作副本,以下代码段将调用buildNumber插件并为该版本使用不同的字符串。也许这可以被jenkins等的Job_ID所取代。
  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>buildnumber-maven-plugin</artifactId>
    <version>1.0-beta-4</version>
    <executions>
      <execution>
        <phase>validate</phase>
        <goals>
          <goal>create</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <revisionOnScmFailure>git</revisionOnScmFailure>
      <doCheck>false</doCheck>
      <doUpdate>false</doUpdate>
      <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
    </configuration>
  </plugin>
    

要回复问题请先登录注册