从Tycho 0.23开始,可以通过在category.xml
例如,要包含我的某个包所需的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 安装软件对话框中时,category.xml
中包含的IU会出现在未分类类别下。< / p>
Documentation is sparse,因此我在这里询问是否有办法从任何类别中排除IU或定义“隐藏”类别?
答案 0 :(得分:0)
为了让更新站点运行但不显示任何IU /类别,只需删除<iu>...</iu>
标签(及其内部内容)即可。换句话说,请将category.xml文件保留为空。
您将看到生成的content.xml文件将列出所有IU,但是在浏览时,任何IU都可以安装&#34;。
此处(https://github.com/antoine-morvan/p2-repo-example)是一个示例项目,它使用自定义category.xml从Maven依赖项构建P2 repo。只包含一个依赖项,jgraph:5.13及其源代码,产生两个捆绑包。在提供的category.xml中,定义了类别,但没有feature / iu。
生成网站并使用Eclipse浏览后,不会显示任何内容。但是,如果查看content.xml的内容,您将看到正确提供了bundle。这意味着可以使用/引用此p2存储库以查找缺少的依赖项,自定义安装...
希望有所帮助,最好的问候。
答案 1 :(得分:0)
似乎没有一种方法可以在不对其进行分类的情况下将IU添加到category.xml
,即,它们将始终显示在一个类别中。
但是,有两种解决方法:
(1)要将所有依赖项(包括传递性依赖项)包括在includeAllDependencies
的{{1}}配置中的最终p2存储库集配置选项true
到pom.xml
中。缺点是,这实际上将包含所有内容,即,如果您正在开发Eclipse插件,则最终的存储库将包含大量的Eclipse插件,例如Eclipse Platform,Equinox,SWT。不确定是否需要。
(2)如果您不介意进行一些后期处理,则可以在构建存储库后删除“未分类”类别。有一个p2.remove.iu Ant任务。
p2-repository-plugin
来源:
答案 2 :(得分:-1)
查看非常稀疏的文档(我也同意)我认为您可以在元素中添加类别。比如这个:
<iu id="com.google.gson">
<category name="javax"/> <<<<<<- here
<query>
<expression type="match">
id == com.google.gson && version >= 2.2.0 && version < 3.0.0
</expression>
</query>
</iu>