在与 Eclipse 目标编辑器苦苦挣扎数小时后,我想出了一些允许我管理 P2 存储库和 .target 文件的舞步。几乎我所有的头痛都是由缓存失效问题引起的。我非常擅长确保在任何代码更改时功能和插件版本都会更改(请参阅下面的提示 3),因此目标应该选择新版本,但很多/大多数时候它不会。特别是当我使用本地 P2 存储库时。为什么要缓存本地存储库?
如果目标编辑器没有找到新版本的功能或插件,而是坚持从存储库加载缓存的旧版本的功能或插件,则需要使用“可用软件”中的重新加载选项站点的对话框使缓存无效。但是该对话框有两个版本。
计划 A:如果您只使用远程 (http) P2 存储库,那么这些说明应该有效:https ://eclipsesource.com/blogs/2012/08/31/reloading-your-p2-cache/
计划 B:但是,如果您使用远程和本地(文件:URI)P2 存储库的组合,则需要使用更迂回的路线使缓存无效。
在目标编辑器的目标定义页面中单击“添加...”。
选择“软件站点”,点击下一步。点击右上角的“管理”按钮。
在“可用软件站点”对话框中,选择要使其缓存无效的存储库,然后单击“重新加载”。
返回目标编辑器,取消您打开的两个对话框,然后选择您刚刚使其缓存失效的存储库,然后单击“更新”。
如果有人知道包含本地存储库的此对话框的更快路径,请发表评论。
提示 1:要使 Target 编辑器的“更新”和“重新加载”至少部分工作,工件版本应设置为“0.0.0”以进行延迟解析。
提示 2。如果你做很多目标管理,我强烈推荐 M. Barbero 的免费且强大的 Target Platform Definition DSL 插件。它为您生成 .target 文件,消除了 .target 文件中功能和插件版本控制的大部分麻烦——并有助于避免不得不使用令人尴尬的 Eclipse 目标编辑器。为了消除更多版本发现问题,强烈考虑为每个功能和/或插件使用“惰性”选项。安装说明在这里:https ://github.com/eclipse-cbi/targetplatform-dsl
这里有一个很好的概述:https ://eclipsesource.com/blogs/2018/05/30/eclipse-target-platform-definition-dsl-and-generator/
提示 3:为 PDE 安装和使用 Eike Stepper 和 Ed Merks 的 Oomph 版本控制。节省大量时间,让您远离版本控制惩罚框。它现在是 Eclipse 的标准配置。它将监视您启用它的任何项目中的代码更改,了解功能和插件之间的关系,通知您不受版本控制但应该受版本控制的项目,标记插件和功能清单中的陈旧版本号以进行更新等等. 它甚至会根据您所做的更改类型建议正确的主要/次要版本号。https://www.eclipse.org/forums/index.php/t/1100576/