包含平台特定片段插件的Tycho功能/插件构建

时间:2016-09-05 20:45:08

标签: eclipse maven tycho

我正在尝试更新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"/>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

我通过找到一些需要做同样事情的eclipse.org插件来解决这个问题。

我正在使用第谷的无耻功能。看起来它不支持这种情况,所以我只需要在我的片段插件中添加一个pom.xml,以便我可以为每个插件指定tycho配置。