由于Tycho 0.23,可以通过在category.xml中声明可安装单元(IU)到最终的p2存储库中

例如,要包括我的一个捆绑软件所需的Gson解析器,我可以编写以下内容:

<iu id="com.google.gson">
  <query>
    <expression type="match">
      id == com.google.gson &amp;&amp; version &gt;= 2.2.0 &amp;&amp; version &lt; 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)在includeAllDependenciestrue配置的最终p2存储库集配置选项pom.xmlp2-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

10-06 03:38