Eclipse无法找到使用Maven Tycho构建的插件的依赖项

时间:2016-12-19 13:38:45

标签: eclipse maven dependencies tycho

我正在使用Maven Tycho来编译我的项目,其结构如下:

- plugin1
 - plugin2 (depends on plugin1)
 - plugin3 (depends on plugin1 & 2)
 - plugin4 (depends on plugin1)
 - plugin5 (depends on plugin1 & 4)
 - plugin6 (depends on all previous plugins)
 - plugin7 (depends on all previous plugins)
{all these plugins are compiled as eclipse-plugin}
 - feature1 (contains all previous plugins) {eclipse-feature}
 - updatesite1 {eclipse-repository}
 - generalproject (contains only the parent pom)

我通过Eclipse(maven install)编译它,一切正常,我可以访问我的本地存储库,并在同一个Eclipse中安装我的功能(通过“安装新软件”)。

问题是当我尝试将我的功能安装到另一个Eclipse实例时,它拒绝安装它并带有错误:

(Missing requirement: Acceleo Texts Module IDE Plug-in 1.0.0.201612161812 (myproject.acceleo.ui 1.0.0.201612161812) requires 'bundle org.eclipse.ocl 0.0.0' but it could not be found)

我知道这是一个不满意的需求问题,但是在Eclipse中我检查了“在安装期间联系所有更新站点以查找所需的软件”,并且我的pom声明了包含所有需求的存储库,这里是我的父pom:

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>myproject.project</groupId>
  <artifactId>myproject.general</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

   <properties>
  <tycho.version>0.23.0</tycho.version>
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

  <repositories>
  <repository>
   <id>Mars</id>
   <layout>p2</layout>
   <url>http://download.eclipse.org/releases/mars/</url>
  </repository>

   <repository>
  <id>Sirius</id>
   <layout>p2</layout>
   <url>http://download.eclipse.org/sirius/updates/releases/4.1.2/mars/</url>
  </repository>
 </repositories>

 <build>
  <plugins>

     <plugin>
    <!-- enable tycho build extension -->
    <groupId>org.eclipse.tycho</groupId>
    <artifactId>tycho-maven-plugin</artifactId>
    <version>${tycho.version}</version>
    <extensions>true</extensions>
   </plugin>

   <plugin>
    <!-- enable tycho build extension -->
    <groupId>org.eclipse.tycho</groupId>
     <artifactId>target-platform-configuration</artifactId>
    <version>${tycho.version}</version>
    <configuration>
    <environments>
    <environment>
      <os>linux</os>
      <ws>gtk</ws>
      <arch>i386</arch>
    </environment>
     <environment>
          <os>linux</os>
          <ws>gtk</ws>
          <arch>x86_64</arch>
        </environment>
       <environment>
          <os>win32</os>
          <ws>win32</ws>
          <arch>x86</arch>
        </environment>
        <environment>
          <os>win32</os>
          <ws>win32</ws>
          <arch>x86_64</arch>
        </environment>
        <environment>
          <os>macosx</os>
          <ws>cocoa</ws>
          <arch>x86_64</arch>
        </environment>
     </environments>
   </configuration>
   </plugin>

  </plugins>
 </build>

 <modules>
  <module>../myproject</module>
  <module>../myproject.acceleo</module>
  <module>../myproject.acceleo.ui</module>
  <module>../myproject.design</module>
  <module>../myproject.edit</module>
  <module>../myproject.editor</module>
  <module>../myproject.plugin</module>
  <module>../myproject.project</module>
  <module>../myproject.site</module>
 </modules>
</project>

我无法弄清楚如何解决这个问题?我在我的程序中省略了什么? 谢谢。

2 个答案:

答案 0 :(得分:0)

您希望安装功能的Eclipse安装可能没有配置包含org.eclipse.ocl的更新站点。这与您的Maven构建无关,只要您没有将您的功能配置为包含所需的捆绑包,也可以这样做。

答案 1 :(得分:0)

我为同样的事情而堕落。 Tycho不包括所有依赖关系,即使这是正常和期望的maven行为。由于maven没有“看到”tycho(如此明显派生的)依赖关系,因此不包括它们。

您可以通过设置为true来覆盖此行为:

<plugin>
 <groupId>org.eclipse.tycho</groupId>
 <artifactId>tycho-p2-repository-plugin</artifactId>
 <version>${tycho-version}</version>
 <configuration>
    <includeAllDependencies>true</includeAllDependencies>
 </configuration>
</plugin>