如何自动版本号更新过程使用Maven构建我的Eclipse插件(How to automate ve

2019-07-30 10:46发布

我有类似项目的项目工作在这里描述 。 因此,它在父pom.xml的几个模块:

 <modules>
    <module>../de.vogella.tycho.plugin</module>
    <module>../de.vogella.tycho.feature</module>
    <module>../de.vogella.tycho.p2updatesite</module>
 </modules>

这些模块有一个大致的版本号如1.0.0-SNAPSHOT或无-SNAPSHOT 。 feature.xml文件中需要包含相同的版本号:

<feature
      id="com.my.feature"
      label="My plugin feature"
      version="1.0.0">

和:

<plugin
      id="com.my.plugin"
      download-size="0"
      install-size="0"
      version="1.0.0"
      unpack="false"/>

该文件category.xml(在P2更新站点项目)和MANIFEST.MF(在插件项目)需要包含相同的值。

现在的问题是:如何将版本号更新过程中使用Maven所有这些文件自动?

我试图解决使用maven释放小插件和Maven的版本,插件这个问题。 第一个插件使得很多未使用的动作(如作出了很多CVS的承诺,我不要在此项目中使用)。 第二个插件只能使在pom.xml中文件的更改和不修改feature.xml的,category.xml和MANIFEST.MF,或者我用它不是那么好。

Answer 1:

有一个特殊的第谷的版本,插件的正是这个问题。 它(故意)不一样的Maven的版本,插件,而且还更新feature.xml中和MANIFEST.MF(冗余)版本。

更有甚者,该插件还更新其指定一个确切的版本,喜欢引用插件在feature.xml的,或引用功能于一身category.xml引用。 所以,最后,神器版本的所有实例都更新,就像在一个重构。

对于确切的版本引用,也有正常的第谷构建过程中的自动更新。 所以,如果例如,您的功能引用您的插件版本1.0.0.qualifier ,该版本字符串与预选赛的实际价值,如更新1.0.0.201207171147 。 您可以使用此功能,以尽量减少需要由第谷的版本,插件更新名额:除了指定在参考当前版本的文字,你可以使用魔法版本0.0.0 。 这个版本也将自动更新到最新版本作为正常构建的一部分。



Answer 2:

我想补充一些实用的提示对于经验不足的Maven用户像我这样的托比亚斯Oberlies的回答:

我们的目标tycho-versions:set-version将改变从主POM中引用的所有项目的版本。 行家配置文件(pom.xml中)以及相应的Eclipse / OSGi的伪影(MANIFEST.MF,feture.xml,category.xml)的版本字符串将被一致地改变。

要从命令行运行的目标使用以下命令:

mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=1.2.0-SNAPSHOT

newVersion用户属性, 1.2.0-SNAPSHOT在这个例子中,是要设置的新版本。

上面的命令行将会使用最新版本的的tycho-versions-plugin 。 如果要使用该插件的某个版本中, tycho-version-plugin需要被添加到project/build/plugins主POM的部分。

<plugin>
  <groupId>org.eclipse.tycho</groupId>  
  <artifactId>tycho-versions-plugin</artifactId>  
  <version>${tycho-version}</version>  
</plugin> 

替换${tycho-version}与第谷的当前版本或定义与名称和相应的值的属性。



文章来源: How to automate version number update process for my Eclipse plugin built with Maven