由于Tycho 0.23,可以通过在category.xml
中声明可安装单元(IU)到最终的p2存储库中
例如,要包括我的一个捆绑软件所需的Gson解析器,我可以编写以下内容:
<iu id="com.google.gson">
<query>
<expression type="match">
id == com.google.gson && version >= 2.2.0 && version < 3.0.0
</expression>
</query>
</iu>
要包括的IU仅用于满足存储库主要功能的依赖性。它们不是要自己安装。
以前,我使用tycho-extras
mirror
goal来包含其他IU,尽管我认为我现在可以将'include IUs'指令移至category.xml
,这使我不必重复维护存储库URL。但是不幸的是,当在Eclipse Install Software对话框中显示生成的存储库时,通过
category.xml
包含的IU出现在Uncategorized类别下。Documentation is sparse,因此我在这里问是否有办法从任何类别中排除IU或定义“隐藏”类别?
最佳答案
如果没有对IU进行分类,似乎没有一种方法可以将IU添加到category.xml
,即,它们将始终显示在类别中。
但是,有两种解决方法:
(1)在includeAllDependencies
的true
配置的最终p2存储库集配置选项pom.xml
到p2-repository-plugin
中包括所有依赖项(包括传递依赖项)。缺点是,这实际上将包含所有内容,即,如果您正在开发Eclipse插件,则最终的存储库将包含大量的Eclipse插件,例如Eclipse Platform,Equinox,SWT。不确定是否需要。
(2)如果您不介意进行一些后期处理,则可以在构建存储库后删除“未分类”类别。有一个p2.remove.iu Ant任务。
<p2.remove.iu>
<repository location="file://${repositoryOnBuildMachine}" />
<iu query="property[@name='org.eclipse.equinox.p2.name' @value='Uncategorized']" />
</p2.remove.iu>
资料来源:
https://bugs.eclipse.org/404103
https://www.eclipse.org/lists/tycho-user/msg03759.html