簡體   English   中英

同一反應堆中的依賴項

[英]Dependencies In Same Reactor

我有一個非常簡單的Tycho反應器,其中包含兩個模塊:一個是標准的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>

第二個是Tycho項目,它依賴於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>

我仍然遇到同樣的異常,這很奇怪,因為文檔聲稱: Maven根據正常的Maven規則解決了GAV依賴關系。

那不是真的。 顯然org.acme.jar沒有得到解決。 也許Tycho無法看到它是捆綁包。

JAR模塊是用於服務器端組件的API項目,從長遠來看,我們希望刪除SWT / Tycho,因此不能將org.acme.jar做成Eclipse插件。

如何在Tycho的同一反應器中定義依賴關系?

恐怕您目前無法實現要求的功能。 第谷Wiki記錄了對pom-first工件HOW-TO依賴性的 這一限制

話雖如此,如果您真的希望整個構建( maven-bundle-plugin和Tycho部件)通過單個mvn clean install ,則可以在“ plain Maven”構建的末尾使用maven-invoker-plugin進行分叉。 “ Tycho構建”應該起作用。 但是,這是一個相當麻煩的解決方法( 例如Github上的示例 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM