同一反应堆中的依赖关系
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>
我仍然得到相同的异常,这很奇怪,因为 documentation 声明:Maven 根据正常的 Maven 规则解析 GAV 依赖项。
事实并非如此。显然 org.acme.jar
没有得到解决。或者第谷可能没有看到它是一个捆绑包。
JAR 模块是一个用于服务器端组件的 API 项目,我们希望在较长的 运行 中删除 SWT / Tycho,因此不能选择 org.acme.jar
Eclipse 插件。
如何在第谷的同一个反应器中定义依赖关系?
恐怕您所要求的目前无法实现。第谷维基文档 this limitation in the dependency on pom-first artifacts HOW-TO.
话虽如此,如果您真的希望整个构建(maven-bundle-plugin
和 Tycho 部分)通过单个 mvn clean install
达到 运行,则使用 maven-invoker-plugin
at the end of the “plain Maven” build to fork a “Tycho build” should work. It’s a rather cumbersome workaround, however (example on Github) .
我有一个非常简单的 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>
我仍然得到相同的异常,这很奇怪,因为 documentation 声明:Maven 根据正常的 Maven 规则解析 GAV 依赖项。
事实并非如此。显然 org.acme.jar
没有得到解决。或者第谷可能没有看到它是一个捆绑包。
JAR 模块是一个用于服务器端组件的 API 项目,我们希望在较长的 运行 中删除 SWT / Tycho,因此不能选择 org.acme.jar
Eclipse 插件。
如何在第谷的同一个反应器中定义依赖关系?
恐怕您所要求的目前无法实现。第谷维基文档 this limitation in the dependency on pom-first artifacts HOW-TO.
话虽如此,如果您真的希望整个构建(maven-bundle-plugin
和 Tycho 部分)通过单个 mvn clean install
达到 运行,则使用 maven-invoker-plugin
at the end of the “plain Maven” build to fork a “Tycho build” should work. It’s a rather cumbersome workaround, however (example on Github) .