Tycho/Maven的配置问题:“;Tycho构建扩展未配置”;

Tycho/Maven的配置问题:“;Tycho构建扩展未配置”;,maven,tycho,maven-extension,Maven,Tycho,Maven Extension,我一直在遵循Vogella的教程()使用Tycho为我的项目设置Maven构建环境。我的项目已经相当大,有几个插件、功能和一个更新站点,但是我设法使mvn clean和mvn compile工作正常,并且一直遵循教程直到mvn安装。我现在面临的问题令人困惑。我始终得到以下错误: [INFO] --- tycho-p2-director-plugin:0.16.0:materialize-products (materialize-products) @ parent --- [DEBUG] Co

我一直在遵循Vogella的教程()使用Tycho为我的项目设置Maven构建环境。我的项目已经相当大,有几个插件、功能和一个更新站点,但是我设法使
mvn clean
mvn compile
工作正常,并且一直遵循教程直到
mvn安装
。我现在面临的问题令人困惑。我始终得到以下错误:

[INFO] --- tycho-p2-director-plugin:0.16.0:materialize-products (materialize-products) @ parent ---
[DEBUG] Configuring mojo org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products from plugin realm ClassRealm[plugin>org.eclipse.tycho:tycho-p2-director-plugin:0.16.0, parent: sun.misc.Launcher$AppClassLoader@35ce36]
[DEBUG] Configuring mojo 'org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products' with basic configurator -->
[DEBUG]   (f) directorRuntime = internal
[DEBUG]   (f) installFeatures = true
[DEBUG]   (f) profile = DefaultProfile
[DEBUG]   (f) project = MavenProject: com.micrium.configbuilder:parent:1.1.0-SNAPSHOT @ C:\Documents and Settings\Thomas Sylvester\git\plugin-suite\com.micrium.configbuilder.tycho.master\pom.xml
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@1335332
[DEBUG]   (f) source = targetPlatform
[DEBUG] -- end configuration --
[INFO] No product definitions found. Nothing to do.
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] parent ............................................ FAILURE [0.201s]
从堆栈跟踪中截取插件列表。他们都被跳过了。父母失败了

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 37.735s
[INFO] Finished at: Thu Feb 21 06:42:47 PST 2013
[INFO] Final Memory: 65M/158M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products (materialize-products) on project parent: Execution materialize-products of goal org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products failed: Tycho build extension not configured for MavenProject: com.micrium.configbuilder:parent:1.1.0-SNAPSHOT @ C:\Documents and Settings\Erika Redmark\git\plugin-suite\com.micrium.configbuilder.tycho.master\pom.xml -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products (materialize-products) on project parent: Execution materialize-products of goal org.eclipse.tycho:tycho-p2-director-plugin:0.16.0:materialize-products failed: Tycho build extension not configured for MavenProject: com.micrium.configbuilder:parent:1.1.0-SNAPSHOT @ C:\Documents and Settings\Erika Redmark\git\plugin-suite\com.micrium.configbuilder.tycho.master\pom.xml
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.PluginExecutionException: Execution materialize-products of goal org.eclipse.tycho:tycho-p2-director-plug
in:0.16.0:materialize-products failed: Tycho build extension not configured for MavenProject: com.micrium.configbuilder:parent:1.1.0-SNAPSHO
T @ C:\Documents and Settings\Erika Redmark\git\plugin-suite\com.micrium.configbuilder.tycho.master\pom.xml
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        ... 19 more
Caused by: java.lang.IllegalStateException: Tycho build extension not configured for MavenProject: com.micrium.configbuilder:parent:1.1.0-SN
APSHOT @ C:\Documents and Settings\Erika Redmark\git\plugin-suite\com.micrium.configbuilder.tycho.master\pom.xml
        at org.eclipse.tycho.core.utils.TychoProjectUtils.getTargetPlatform(TychoProjectUtils.java:63)
        at org.eclipse.tycho.p2.facade.RepositoryReferenceTool.addTargetPlatformRepository(RepositoryReferenceTool.java:116)
        at org.eclipse.tycho.p2.facade.RepositoryReferenceTool.getVisibleRepositories(RepositoryReferenceTool.java:97)
        at org.eclipse.tycho.plugins.p2.director.DirectorMojo.getTargetPlatformRepositories(DirectorMojo.java:167)
        at org.eclipse.tycho.plugins.p2.director.DirectorMojo.getSourceRepositories(DirectorMojo.java:145)
        at org.eclipse.tycho.plugins.p2.director.DirectorMojo.execute(DirectorMojo.java:93)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        ... 20 more
[ERROR]
[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/PluginExecutionException
我发现问题的根源在于目标平台没有定义。但当我在EclipseWiki()上查找目标平台时,它指出:

为了使Tycho能够根据 任何来自特定p2存储库的内容,请将该存储库添加到 POM的部分。。。在目标平台方面,, 这意味着在中指定的p2存储库的全部内容 这种方式将成为目标平台的一部分

我的POM中有这个部分。事实上,这是我的父母POM的全部内容(根据教程在一个单独的通用项目中定义)。我只省略了所有模块的声明:

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.micrium.configbuilder</groupId>
    <artifactId>parent</artifactId>
    <version>1.1.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <modules>
        ... bunch of modules ...
    </modules>

    <properties>
        <tycho-version>0.16.0</tycho-version>
    </properties>

    <repositories>
        <repository>
            <id>helios</id>
            <layout>p2</layout>
            <url>http://download.eclipse.org/releases/helios</url>
        </repository>
    </repositories>


    <build>
        <plugins>

            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>0.16.0</version>
                <extensions>true</extensions>
            </plugin>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-p2-director-plugin</artifactId>
                <version>0.16.0</version>
                <executions>
                    <execution>
                        <id>materialize-products</id>
                        <goals>
                            <goal>materialize-products</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>archive-products</id>
                        <goals>
                            <goal>archive-products</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>

    </build>

</project>

4.0.0
com.micrium.configbuilder
父母亲
1.1.0-快照
聚甲醛
... 一堆模块。。。
0.16.0
太阳神
p2
http://download.eclipse.org/releases/helios
org.eclipse.tycho
tycho maven插件
0.16.0
真的
org.eclipse.tycho
tycho-p2-director-plugin
0.16.0
物化产品
物化产品
档案产品
档案产品

我错过什么了吗?我似乎已经将文档中的内容定义为目标平台。我看到了正确的问题吗?

问题是您试图在父POM中执行
tycho-p2-director-plugin
。这将不起作用–插件只能在具有
eclipse存储库
打包类型的模块中执行。将配置
tycho-p2-director-plugin
配置移动到
eclipse存储库中
模块将解决此处描述的问题


不幸的是,在这种情况下,Tycho没有给出好的错误消息。它表示“Tycho build extension not configured”,但实际上它已配置,但只是没有针对打包类型
pom

Erika执行。如果您能从示例中删除
resolver=p2
配置,我将不胜感激。对于
tycho-maven插件
tycho-p2-director-plugin
(对于未提及的
目标平台配置
插件,
p2
是ages的默认值)。我从代码和示例中删除了它们。我最近添加了它们,试图解决这个问题,但正如我现在看到的,它们无关紧要。谢谢,谢谢。我修好了教程。好极了,现在好像可以用了。每个模块都是成功的。非常感谢你。