由Tycho构建的更新站点在重新构建后仍然包含错误的依赖性

sfi*_*nie 2 xtext tycho maven

我已经使用Tycho构建了一个Eclipse更新站点,但是当尝试从其中安装一个功能到目标IDE失败时.

更新站点建立良好; 我可以从目标Eclipse安装中看到它并选择要安装的功能.但是,依赖性检查在安装开始时失败,因为它无法找到声明的依赖项(org.eclipselabs.xtext.utils.unittesting).这应该不是依赖:它错误地包含在MANIFEST.MF中,用于我的一个eclipse插件项目.

我从清单中删除了依赖项并mvn clean install再次运行.构建报告成功,但是当我尝试使用新构建的更新站点时,它仍然抱怨对org.eclipselabs.xtext.utils.unittesting(a)的依赖性存在并且(b)不能满足.

所以问题是:我还需要做些什么才能从生成的更新站点中删除依赖项?

谢谢你的任何指示.

PS:我知道我可以在目标eclipse安装中添加oexuunittesting的站点,以便它可以满足依赖性.但是我不想这样做; 该功能不需要它,我不希望其他用户必须添加不必要的依赖项.

obe*_*ies 6

以下是您的方案中可能涉及的缓存位置列表,以及如何清除它们

  • 目标文件夹:如果目标文件夹包含先前构建的结果,则Maven构建可以使用此数据来加速构建.Tycho没有使用此功能,而AFAIK它不应该从目标文件夹中获取任何现有内容.

    可以肯定的是,始终cleanmvn通话中包含目标.

  • 本地Maven存储库:为了支持反应堆部分的构建,Tycho将本地构建的工件添加mvn clean install到目标平台.如果您不了解此功能,可能会产生各种奇怪的效果.

    为了避免这种情况,install除非必须,否则不要构建.请mvn clean verify改用.另外:删除文件会~/.m2/repository/.meta/p2-local-metadata.properties重置Tycho认为"本地安装"的内容.

    从Tycho 0.16.0开始,您还可以通过命令行开关为一个构建禁用此行为,-Dtycho.localArtifacts=ignore或者通过在settings.xml中设置相同的属性来禁用所有构建.

  • p2:Eclipse中的p2更新管理器缓存了自Eclipse启动以来它一直使用的p2存储库.

    要强制p2重新加载存储库,请转到"首选项">"安装/更新">"可用软件站点",选择存储库并单击" 重新加载".如果重新启动Eclipse,还将重新加载存储库.