我使用tycho构建Eclipse RCP应用程序。到目前为止,我们一直在使用Eclipse的构建系统,但我想使用tycho做每晚构建快照。直到现在,在我的公司,我们已经发布了带有更新站点的RCP应用程序,我们使用Eclipse中的site.xml文件视图中的“全部构建”进行更新。我试图用tycho复制这个行为,遵循http://www.vogella.com/articles/EclipseTycho/article.html。就地更新tycho更新网站
我的问题是,尽管在我们现有的更新站点中放置了一个pom.xml,tycho在生成(使用mvn clean verify或mvn install),在现有更新站点内的目录中生成新的更新站点目标/。如果我连续构建两次,第一个新生成的更新站点将被替换,而我希望它是已更新。对我来说这似乎是可行的,因为生成的JAR没有相同的时间戳。因此,我的问题是:我如何模仿Eclipse的'Build All'行为来更新site.xml,artifacts.jar和contents.jar文件(这样我的客户端就可以看到边缘和更老的版本)更新网站)?作为奖励,我还希望更新现有的更新站点,以便在target /中生成一个新的更新站点!
pom.xml中在我现有的更新站点是非常标准:
<project>
<modelVersion>4.0.0</modelVersion>
<parent>
<relativePath>../../daily-build-repo/blah/pom.xml</relativePath>
<groupId>com.mycompany</groupId>
<artifactId>product_name</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.mycompany.updateSites.nightly</artifactId>
<packaging>eclipse-repository</packaging>
</project>
[编辑] oberlies'answer让我进步,但它不工作呢。为了使他的答案更加精确,让我补充一点,我将他的代码添加到由maven构建的存储库中的pom.xml中,而不是我想要发布的那个(因此,主pom中没有提及更新站点的参考我想发布)。这似乎工作作为构建结尾:
[INFO] Mirroring to path/to/existing/update/site
但后来我得到一个大的警告:
[WARNING] Mirror tool: Problems resolving provisioning plan.: [Unable to satisfy dependency from com.mycompany.blah to org.eclipse.ltk.ui.refactoring 0.0.0; Unable to satisfy dependency from com.mycompany.blah to org.eclipse.ltk.ui.refactoring 0.0.0; ...]
所有缺少的依赖关系是外部库,而不是我公司的库(即内置)。由于所有库都无法解析,我想我做错了什么。奇怪的是,如片段所示,我得到了两次缺少同一个库的依赖关系:对于来自com.mycompany.blah的plugin.xml文件和版本0.0.0的版本(3.7.0)。
尽管构建成功,我的更新网站保持不动。