这是Tycho社区经常提出的一个问题:
我从[以前的技术迁移了我的Eclipse RCP构建,例如
eclipse-application
/ PDE无头构建/ ...]使用打包类型eclipse-repository
添加到新recommended way of building products with Tycho。现在我的发行版包含了比以前更多的包。问题似乎是Tycho引入了我的产品中包含的bundle的可选依赖项。我该如何防止这种情况?
答案 0 :(得分:10)
Tycho的eclipse-repository
打包类型builds product distributions具有相同的技术(称为 p2 ),例如,在Eclipse IDE中安装新功能时也会使用。这样做的好处是,与其他构建技术不同,您不需要手动指定产品中所需捆绑包的所有依赖关系,但Tycho / p2会自动为您包含它们。 (这很重要,否则捆绑包不会在运行时启动。)
另一方面,这也可能是一个缺点:Tycho / p2还包含您希望从产品中排除的某些可选依赖项。
没有选项可以告诉Tycho不包含任何可选的依赖项(因为p2没有此选项)。但是,您可以识别您不需要的可选包,并使用以下配置明确地将它们从target platform中排除:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<filters>
<filter>
<type>eclipse-plugin</type>
<id>unwanted.bundle.id</id>
<removeAll />
</filter>
</filters>
</configuration>
</plugin>
然后,产品构建将无法再看到已排除的捆绑包,并将从安装中省略它。
注意:如果在添加上述配置后出现依赖项解析错误,则会有一些非选择性需要捆绑包的内容。虽然阅读起来有点棘手,但错误消息会告诉您从正在构建的内容到删除的bundle所引起的依赖链。
答案 1 :(得分:0)
我偶然发现了这个答案,从我的 RCP 构建中排除了 com.ibm.icu,并想发布更新。
Tycho 可以配置为暂时忽略可选依赖项,请参阅 https://wiki.eclipse.org/Tycho/Release_Notes/0.14
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tychoVersion}</version>
<configuration>
<dependency-resolution>
<optionalDependencies>ignore</optionalDependencies>
</dependency-resolution>
</configuration>