如何从使用Maven和Tycho作为构建系统的源构建Eclipse功能?

时间:2012-03-31 13:35:50

标签: eclipse tycho

我看到我想从HEAD构建的一个功能(以获得bug修复的好处)在git.eclipse.org中。从源代码构建一些Eclipse特性过去有点棘手,但是现在有Tycho可以让它变得更容易,因为它使用了Maven。幸运的是,我发现此功能已经设置为使用Tycho和Maven。

但是如何使用Tycho作为最终用户并不是很明显 - 我尝试使用“干净安装”作为目标运行Maven构建,但是失败了。

请提供有关如何运行Tycho构建的完整分步说明,从要构建的项目的源代码检查开始,包括安装任何必要的软件,以及完成运行具有所需功能的Eclipse。

另外,如果我想在Eclipse中更改插件的源代码怎么办?这是否意味着我应该使用不同的方法来构建它?


仅供参考,这是导致上述一般问题的具体问题:我尝试构建功能org.eclipse.linuxtools/systemtap/org.eclipse.linuxtools.systemtap-feature,并在兄弟目录中检出systemtap个插件(因为它们是一部分)相同的git存储库,所以我免费获得它们。

错误是:

[ERROR] Failed to execute goal org.eclipse.tycho.extras:tycho-source-feature-
plugin:0.14.0:source-feature (source-feature) on project org.eclipse.linuxtools.systemtap: Could not generate source feature for project MavenProject: org.eclipse.linuxtools.systemtap:org.eclipse.linuxtools.systemtap:1.2.0-SNAPSHOT @ /home/greenrd/git/org.eclipse.linuxtools/systemtap/org.eclipse.linuxtools.systemtap-feature/pom.xml
[ERROR] Missing sources for plugins [org.eclipse.linuxtools.systemtap.ui.consolelog_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.editor_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.graphingapi.nonui_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.graphingapi.ui_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.logging_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.structures_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.graphing_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.systemtapgui_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.ide_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.dashboard_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.dashboardextension_0.3.0.201203201951, org.eclipse.linuxtools.systemtap.ui.graphicalrun_0.3.0.201203201951]
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

2 个答案:

答案 0 :(得分:0)

mvn package通常会导致使用Tycho构建的打包插件和功能。也许你的失败与使用mvn install有关,verify也涉及在mvn package阶段运行集成测试。

如果{{1}}不起作用,请添加您正在构建的项目以及您收到的错误。

答案 1 :(得分:0)

使用Tycho的项目应该像任何其他Maven项目一样构建,即您应该能够构建项目并通过调用项目根目录中的mvn clean verify来运行其测试。 (如果根目录中没有pom.xml,请查找名为“parent”的项目,或者询问项目的构建入口点。)

就像在Maven中一样,您通常无法检查项目并仅直接构建项目的一部分,例如通过调用mvn一个eclipse-feature子项目。为了实现这一点,您首先需要使用mvn clean install构建整个项目一次,然后您还可以重新构建项目的一部分。

如果您执行源代码修改,我建议您再次执行完整版本。可以只构建已更改的子项目,但您还需要手动确保重建所有聚合项目类型(即“eclipse-feature”和“eclipse-repository”),这可能不值得付出努力。 (不幸的是,Maven选项--also-make-dependentscurrently not supported by Tycho。)

为了从本地构建结果中安装,您需要找到将项目二进制文件组装为p2存储库的子项目:查找target/repository(或可能target/site)目录并检查features / plugins子文件夹。存储库或站点文件夹可以用作Eclipse中更新机制的“本地”源。


免责声明:上述步骤不适用于使用Tycho的所有项目。如果出现问题,您应该查看项目文档以获取运行构建的特殊说明,或者询问项目开发人员。