是否有一种方法可以使tycho-eclipserun-plugin:eclipse-run
目标解析当前反应器或本地存储库中的工件的依赖关系?我试图在我们的Tycho构建中运行Eclipse/CDT无头构建应用程序作为一个步骤,但是我不知道如何用新构建的工具链插件填充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实例中。当然,我可以指出一个托管插件的外部更新站点,但我希望能够使用已经在同一反应堆中构建的插件。这可能吗?
编辑:原来的问题包括"或本地存储库工件",但这不是我的实际意思。
不,这是不可能的
早期版本的Tycho允许在eclipserun-plugin中使用反应器中的构件,但是这会导致一些项目的问题,这些项目是从eclipserun-plugin中使用的构件(即Eclipse平台)构建上游构件的。因此,为了解决这个问题,eclipserun-plugin使用的工件与反应器解耦。Tycho 0.17.0.
可以想象重新允许这个用例的方法,但目前还没有实现。据我所知,目前还没有具体的想法来做到这一点。如果你想贡献一个,你可以在Tycho的问题跟踪器中提交一个增强。
我能找到的最简单的方法是使用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,它包含了你需要的存储库。
编辑:这原来不是我所期望的工作。它将从本地存储库中提取工件,而不是像我期望的那样从反应器中提取工件。