1

我正在使用 Jenkins 版本。1.521 和标准 maven 插件 (ver 1.519) 来构建 maven2 项目。

在清单中,我可以看到我没有在任何 pom 文件中配置的条目:

Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: jenkins
Build-Jdk: 1.6.0_45
Hudson-Build-Number: ...
Hudson-Project: ...
Hudson-Version: ...
Jenkins-Build-Number: ..
Jenkins-Project: ...
Jenkins-Version: ...

我在哪里可以配置这些条目?

4

2 回答 2

2

我不知道这样的默认行为。通常这是在 pom.xml 的构建部分中配置的。你确定它不是来自某个地方的祖先 pom 吗?

  <plugin>
    <artifactId>maven-jar-plugin</artifactId>
    <configuration>
      <archive>
        <manifest>
          <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
        </manifest>
        <manifestEntries>
          <Build-Job>${JOB_NAME}</Build-Job>
          <Build-Id>${BUILD_ID}</Build-Id>
          <Build-Number>${BUILD_NUMBER}</Build-Number>
          <Build-Repository-Rev>${SVN_REVISION}</Build-Repository-Rev>
          <Build-Time>${maven.build.timestamp}</Build-Time>
        </manifestEntries>
      </archive>
    </configuration>
  </plugin>

在此示例中,子 XML 元素manifestEntries是根据元素名称创建的。它们可以来自 Maven 属性,例如maven.build.timestamp,或环境变量,例如JOB_NAME。环境变量JOB_NAME由 Jenkins 在执行作业时BUILD_ID设置。

于 2013-10-15T00:10:54.743 回答
1

实际上,我在jenkins的 maven 插件的源代码中发现了它们的硬编码,这是一件可悲的事情。

于 2013-10-15T08:19:56.003 回答