依存

2017-02-03 10 views
0

私は2つのモジュールを搭載した非常に単純なティコ原子炉を持っている:1はそれバンドルするには、このほかの標準Mavenプロジェクトである:依存

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <extensions>true</extensions> 
    <executions> 
     <execution> 
      <id>default-bundle</id> 
      <phase>package</phase> 
      <goals> 
       <goal>bundle</goal> 
      </goals> 
      <configuration> 
       <instructions> 
        <Export-Package>org.acme.jar</Export-Package> 
       </instructions> 
       <manifestLocation>META-INF</manifestLocation> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

第二は、依存関係を持つティコプロジェクトですMANIFEST.MFの上記のJARに追加してください。バンドルは、同じ反応器内あるので、本当に奇妙である

[ERROR] Cannot resolve project dependencies: 
[ERROR] Software being installed: plugin 0.0.1.qualifier 
[ERROR] Missing requirement: plugin 0.0.1.qualifier requires 'bundle org.acme.jar 0.0.1' but it could not be found 

:私はビルドを開始すると

は、私は次の例外を取得します。

しかし、心配ない、私はあまりにも、Mavenの依存関係を追加することができます

<!-- parent pom.xml --> 
<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>0.26.0</version> 
    <configuration> 
     <pomDependencies>consider</pomDependencies> 
    </configuration> 
</plugin> 

<!-- plug-in pom.xml --> 
<dependencies> 
    <dependency> 
     <groupId>org.acme</groupId> 
     <artifactId>jar</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
</dependencies> 

はまだ私がdocumentation主張するので奇妙で同じ例外を取得:Mavenは、正常に応じてGAVの依存関係を解決しますMavenのルール。

これはちょうど真実ではありません。明らかにorg.acme.jarは解決されません。または、Tychoがバンドルであることを確認できない可能性があります。

JARモジュールはサーバー側のコンポーネントに使用されるAPIプロジェクトで、長期的にはSWT/Tychoを削除したいので、org.acme.jarをEclipseプラグインにすることはできません。

Tychoの同じリアクタで依存関係を定義するにはどうすればよいですか?

答えて

1

私が恐れていることは、現時点では不可能なことです。 Tycho Wikiはdependency on pom-first artifacts HOW-TOthis limitationと書いています。 「平野のMaven」の末尾にmaven-invoker-pluginを使用すると、「ティコの構築」フォークするビルドし、その後、単一mvn clean installで実行するように言われていること

、あなたが本当にあなたの全体のビルド(maven-bundle-pluginとティコ部品を)したい場合はすべきです作業。ただし、面倒な回避策(example on Github)です。