我正在尝试更新Subclipse的构建过程以使用Eclipse Tycho。
Subclipse有一个Eclipse插件--javal有两个片段插件,一个用于win32,另一个用于win64,它们添加了插件在路径中需要的特定于Windows的DLL。
我的主人pom.xml中有这个:
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho.version}</version>
<configuration>
<resolver>p2</resolver>
<environments>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86</arch>
</environment>
<environment>
<os>win32</os>
<ws>win32</ws>
<arch>x86_64</arch>
</environment>
</environments>
</configuration>
</plugin>
当我尝试在构建中包含这些片段插件时,它会像这样失败:
[INFO] Resolving dependencies of MavenProject: org.tigris.subclipse:org.tigris.subversion.clientadapter.javahl.win32:1.8.15-SNAPSHOT @ /Users/markphip/git/subclipse/bundles/svnapi.javahl.win32/.polyglot.build.properties
[INFO] {osgi.os=win32, org.eclipse.update.install.features=true, osgi.arch=x86_64, osgi.ws=win32}
[ERROR] Cannot resolve project dependencies:
[ERROR] Problems resolving provisioning plan.:
[ERROR] org.tigris.subversion.clientadapter.javahl.win32 1.8.15.qualifier cannot be installed in this environment because its filter is not applicable.
我在OSX上运行构建,最终它将在Linux上运行TravisCI。
我的最终目标是将所有内容构建并打包到我可以发布到bintray的p2存储库中。所以我需要构建这些片段并将其包含在最终的p2存储库中。
片段在MANIFEST中有类似的东西
Fragment-Host: org.tigris.subversion.clientadapter.javahl;bundle-version="[1.8.0,1.9.0)"
Eclipse-PlatformFilter: (& (osgi.os=win32) (osgi.arch=x86_64))
该功能同样具有类似的过滤器:
<plugin
id="org.tigris.subversion.clientadapter.javahl.win32"
os="win32"
arch="x86"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
<plugin
id="org.tigris.subversion.clientadapter.javahl.win64"
os="win32"
arch="x86_64"
download-size="0"
install-size="0"
version="0.0.0"
fragment="true"/>
任何帮助都将不胜感激。
答案 0 :(得分:2)
我通过找到一些需要做同样事情的eclipse.org插件来解决这个问题。
我正在使用第谷的无耻功能。看起来它不支持这种情况,所以我只需要在我的片段插件中添加一个pom.xml,以便我可以为每个插件指定tycho配置。