首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何自动化使用Maven构建的Eclipse插件的版本号更新过程

如何自动化使用Maven构建的Eclipse插件的版本号更新过程
EN

Stack Overflow用户
提问于 2012-07-17 19:47:07
回答 2查看 7.7K关注 0票数 15

我正在处理一个类似于described here项目的项目。因此,它在父pom.xml中有几个模块:

代码语言:javascript
复制
 <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文件需要包含相同的版本号:

代码语言:javascript
复制
<feature
      id="com.my.feature"
      label="My plugin feature"
      version="1.0.0">

和:

代码语言:javascript
复制
<plugin
      id="com.my.plugin"
      download-size="0"
      install-size="0"
      version="1.0.0"
      unpack="false"/>

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

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

我尝试使用maven-release-plugin和maven-versions-plugin来解决这个问题。第一个插件做了很多未使用的操作(比如做了很多CVS提交,我在这个项目中没有用到)。第二个插件只会修改pom.xml文件,不会修改feature.xml、category.xml和MANIFEST.MF,或者我用得不太好。

EN

回答 2

Stack Overflow用户

发布于 2012-07-17 23:07:21

有一个专门的tycho-versions-plugin来解决这个问题。它(有意地)与maven- versions -plugin做同样的事情,但也会更新feature.xml和MANIFEST.MF中的(冗余)版本。

更重要的是,插件还会更新指定确切版本的引用,比如对feature.xml中插件的引用,或者对category.xml中特性的引用。所以最后,所有出现的工件版本都会被更新,就像重构一样。

对于精确版本的引用,在正常的Tycho构建过程中也有一个自动更新。因此,如果您的功能在版本1.0.0.qualifier中引用了您的插件,则此版本字符串将使用限定符的实际值进行更新,例如1.0.0.201207171147。您可以利用此功能来最小化tycho-versions-plugin需要更新的位置的数量:您可以使用神奇的版本0.0.0,而不是在引用中指定当前的版本文字。作为正常构建的一部分,此版本也会自动更新到最新版本。

票数 22
EN

Stack Overflow用户

发布于 2015-12-06 23:30:39

对于像我这样经验较少的maven用户,我想为Tobias Oberlies的答案添加一些实用的提示:

目标tycho-versions:set-version将更改从主pom引用的所有项目的版本。maven配置文件(pom.xml)的版本字符串以及相应的Eclipse/OSGi工件(MANIFEST.MF、feature.xml、category.xml)将一致地更改。

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

代码语言:javascript
复制
mvn org.eclipse.tycho:tycho-versions-plugin:set-version -DnewVersion=1.2.0-SNAPSHOT

本例中的newVersion用户属性1.2.0-SNAPSHOT是要设置的新版本。

上面的命令行将使用最新版本的tycho-versions-plugin。如果需要使用某个版本的插件,则需要在主pom的project/build/plugins元素中添加tycho-version-plugin

代码语言:javascript
复制
<plugin>
  <groupId>org.eclipse.tycho</groupId>  
  <artifactId>tycho-versions-plugin</artifactId>  
  <version>${tycho-version}</version>  
</plugin> 

${tycho-version}替换为Tycho的当前版本,或者使用该名称和适当的值定义属性。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11521839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档