有没有办法让tycho-eclipserun-plugin:eclipse-run
目标解决当前reactor 或本地存储库中工件的依赖关系。我尝试将Eclipse / CDT无头构建应用程序作为Tycho构建中的一个步骤运行,但我无法弄清楚如何使用新构建的工具链插件填充Eclipse实例。
<plugin>
<groupId>org.eclipse.tycho.extras</groupId>
<artifactId>tycho-eclipserun-plugin</artifactId>
<executions>
<execution>
<configuration>
<appArgLine>-application org.eclipse.cdt.managedbuilder.core.headlessbuild -import file:///... -cleanBuild all</appArgLine>
<repositories>
<repository>
<url>http://download.eclipse.org/releases/kepler/</url>
<layout>p2</layout>
</repository>
</repositories>
<dependencies>
...
<dependency>
<artifactId>my.toolchain.feature</artifactId>
<type>eclipse-feature</type>
</dependency>
</dependencies>
</configuration>
<goals>
<goal>eclipse-run</goal>
</goals>
<phase>test</phase>
</execution>
</executions>
</plugin>
这将失败,因为我的工具链插件不存在于承载无头构建应用程序的Eclipse实例中。当然,我可以指出一个托管插件的外部更新站点,但我希望能够使用已经在同一个反应器中构建的插件。这可能吗?
编辑:原始问题包括&#34;或本地存储库工件&#34;,但这不是我的实际意思。
答案 0 :(得分:1)
不,这是不可能的。
早期版本的Tycho允许使用反应堆中的工件来获取eclipserun-plugin,但这个caused problems for projects which build upstream artifacts from the artifacts they used for the eclipserun-plugin,即Eclipse平台。因此,为了解决这个问题,eclipserun-plugin使用的工件与反应器和放大器分离。 Tycho 0.17.0中的反应堆依赖。
可以想象重新允许此用例的方法,但目前尚未实现。 AFAIK还没有具体的想法,但如何做到这一点。如果你想贡献一个,你可以file an enhancement in Tycho's issue tracker。
答案 1 :(得分:0)
我能找到的最简单的方法是使用maven-dependency-plugin
从存储库模块中复制存储库:
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<goals>
<goal>unpack</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.iar</groupId>
<artifactId>my.toolchain.repository</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>zip</type>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
这将在本地复制和解压缩存储库。然后可以在调用eclipserun
目标时将其指定为存储库:
<repository>
<url>file://${project.build.directory}/dependency</url>
<layout>p2</layout>
</repository>
您唯一需要知道的是“eclipse-repository”模块的GAV,它包含您需要的存储库。
编辑:事实证明这不符合我的预期。它将从本地存储库中提取工件,而不是像我预期的那样从反应堆中提取工件。