我正在使用Maven构建Eclipse的插件,我正在寻找一种方法来告诉Maven更新META-INF \ MANIFEST.MF文件中的Bundle-Version。
诀窍是,我需要一个干净的方法来做到这一点。因此,更多的同事(甚至是几个月/几年的我)可能不会破坏最终的自动构建。
以下是我的尝试:
使用" Bundle-Version:$ {project.version}"在MANIFEST.MF
在maven的观点上,这是有效的。 但我的Eclipse项目经常显示错误:指定的版本没有正确的格式(major.minor.micro.qualifier)
使用上面但在maven使用的另一个META-INF文件夹(名为META-INF-MAVEN)而不是原文:
<resources>
<resource>
<directory>META-INF-MAVEN</directory>
<targetPath>META-INF</targetPath>
<filtering>true</filtering>
</resource>
</resources>
这仍然是&#34;工作&#34;,但是所需的MANIFEST.MF文件重复远离我正在寻找的东西。这是未来错误的一个大陷阱,例如编辑原始的MANIFEST.MF文件并忘记maven文件,导致错误发布。
使用org.apache.maven.plugins在pom文件的编译时添加Bundle-Version标记:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifestFile>target/classes/META-INF/MANIFEST.MF</manifestFile>
<manifestEntries>
<Bundle-Version>${project.version}</Bundle-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
这是最有前途的方式,但它仅在原始MANIFEST.MF 没有 Bundle-Version行时才有效。 结果再次是Eclipse项目中的错误。
所以,我在这里,要求任何想法。
感谢。