2016-12-19 2 views
1

Mavenのティコで構築されたプラグインの依存関係を見つけることができません。Eclipseは、私がこのように構成されている私のプロジェクトをコンパイルするのMavenティコを使用しています

- 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) 

私は、すべての作品(Mavenのインストール)のEclipseを経由して、これをコンパイルしてI私のローカルリポジトリにアクセスし、同じ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でi「は、すべての更新サイトは、中に必要なソフトウェアを見つけるために、インストール連絡先」をチェックし、私のポンポンは、ここでは、すべての要件を含むリポジトリを宣言し、私の​​親ポンポンです:私はこれを解決する方法を見つけ出すことはできません

<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> 

?私の手続きで何かを省略しましたか? ありがとうございます。

答えて

0

おそらく、フィーチャーをインストールするEclipseインストールには、org.eclipse.oclを含む更新サイトが設定されていない可能性があります。必要なバンドルを含むようにフィーチャーを構成していない限り、これはMavenビルドとは関係ありません。

+0

は、あなたの答えをありがとう、と私は彼のEclipseを設定するには、ユーザーに強制することはできませんから、私はすでに私の考え、あなたの第二の提案を、従うべき私のPOMファイルに必要なリポジトリを追加することでできましたか? –

+1

いいえ、あなたの機能では、必要なプラグインをIncluded Plug-inにも追加することができます。実際には、必要なバンドルも含まれています。依存関係を指定するだけで、必要であることがわかります。 –

+0

私は参照してください、しかし、私の機能に含まれているプラ​​グインに "org.eclipse.ocl"を追加しても、同じエラーが続く:myproject.acceleo.ui 1.0.0.201612161812)は、 'bundle org.eclipse.ocl 0.0.0'それは見つからなかった。 N.B:myproject.acceleo.uiは、私の機能の3番目のプラグインです。 –

0

私は同じことのために落ちました。 Tychoはすべての依存関係を含んでいるわけではありません。 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>