我们使用的是企业范围的超级pom。它设置了所有mvn site
报告,确保所有用户都使用Findbugs,PMD等。
我们要做的其中一件事是将输入添加到我们的MANIFEST.MF
文件中。这些条目帮助我们将特定的jar固定到特定的Jenkins构建和Subversion修订版。清单看起来像这样:
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: david
Build-Jdk: 1.7.0_55
Name: Build-Information
Project-Name: tc-jsonp-filter-trunk
SVN-Revision: 23928
Build-Number: 23
Name: Module-Information
Group-ID: com.travelclick
Version: 5.1
Artifact-ID: tc-jsonp-filter
如果我将以下内容添加到本地pom.xml
,一切正常:
<build>
...
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.1</version>
<configuration>
<archive>
<manifestSections>
<manifestSection>
<name>Build-Information</name>
<manifestEntries>
<Project-Name>${env.JOB_NAME}</Project-Name>
<Build-Number>${env.BUILD_NUMBER}</Build-Number>
<SVN-Revision>${env.SVN_REVISION}</SVN-Revision>
</manifestEntries>
</manifestSection>
<manifestSection>
<name>Module-Information</name>
<manifestEntries>
<Group-ID>${project.groupId}</Group-ID>
<Artifact-ID>${project.artifactId}</Artifact-ID>
<Version>${project.version}</Version>
</manifestEntries>
</manifestSection>
</manifestSections>
</archive>
</configuration>
</plugin>
</plugins>
....
</build>
但是,如果我将其添加到我的超级pom中,MANIFEST.MF
文件不包含此信息。
我知道正在下载超级pom(我可以看到),而且我知道其他区域正在运行,因为它进行了JaCoCo测试覆盖,并且只能在超级pom中找到。
答案 0 :(得分:0)
发现问题:
我的第一次尝试是使用另一个插件:org.apache.felix#maven-bundle-plugin。这不起作用,所以我尝试了org.apache.maven.plugins#maven-jar-plugin
存档配置。这在当地有效。
然后我用我的Maven仓库中的这个更改替换了我的超级pom项目,然后从我的机器中删除了$HOME/.m2/repository/.../super-pom.xml
并尝试了它。它不起作用。
我没有意识到的是,我将超级pom存储在我的插件存储库中,而不是我的发布存储库中。因此,它下载了较旧且不正确的super_pom
。
将super_pom放在正确的目录中解决了这个问题。