tycho-p2-director-plugin 删除生成的工件

tycho-p2-director-plugin deletes generated artifacts

我正在尝试使用 tycho-p2-director-plugin 来实现产品,但该插件似乎在执行结束时删除了工件。此外,调用的插件排列很奇怪:"tycho-p2-repository-plugin" --> "tycho-packaging-plugin" --> "maven-clean-plugin" --> "tycho-p2-director-plugin"。

以下是产品项目pom.xml:

...
<packaging>eclipse-repository</packaging>

<build>
    <plugins>
        <plugin>
            <groupId>org.eclipse.tycho</groupId>
            <artifactId>tycho-p2-director-plugin</artifactId>
            <version>0.24.0</version>
            <executions>
                <execution>
                    <id>materialize-products</id>
                    <goals>
                        <goal>materialize-products</goal>
                    </goals>
                </execution>
            </executions>
                <configuration>
                    <products>
                        <product>
                            <id>productSample</id>
                        </product>
                    </products>
                </configuration>
        </plugin>       
    </plugins>
</build>

以下是对产品项目调用 "mvn package" 的输出:

[INFO] ------------------------------------------------------------------------
[INFO] Building com.product.project 1.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- tycho-packaging-plugin:0.24.0:build-qualifier-aggregator (default-build-qualifier-aggregator) @ com.product.project ---
[INFO] The project's OSGi version is 1.2.0.201511061039
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean-1) @ com.product.project ---
[INFO] Deleting C:\test\com.product.project\target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ com.product.project ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory C:\test\com.product.project\src\main\resources
[INFO]
[INFO] --- target-platform-configuration:0.24.0:target-platform (default-target-platform) @ com.product.project ---
[INFO]
[INFO] --- tycho-p2-publisher-plugin:0.24.0:publish-products (default-publish-products) @ com.product.project ---
[INFO]
[INFO] --- tycho-p2-publisher-plugin:0.24.0:publish-categories (default-publish-categories) @ com.product.project ---
[INFO]
[INFO] --- tycho-p2-publisher-plugin:0.24.0:attach-artifacts (default-attach-artifacts) @ com.product.project ---
[INFO]
[INFO] --- tycho-p2-repository-plugin:0.24.0:assemble-repository (default-assemble-repository) @ com.product.project ---
[INFO]
[INFO] --- tycho-p2-repository-plugin:0.24.0:archive-repository (default-archive-repository) @ com.product.project ---
[INFO] Building zip: C:\test\com.product.project\target\com.product.project-1.2.0-SNAPSHOT.zip
[INFO]
[INFO] >>> maven-source-plugin:2.2.1:jar (attach-sources) > generate-sources @ com.product.project >>>
[INFO]
[INFO] --- tycho-packaging-plugin:0.24.0:build-qualifier-aggregator (default-build-qualifier-aggregator) @ com.product.project ---
[INFO] The project's OSGi version is 1.2.0.201511061039
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean-1) @ com.product.project ---
[INFO] Deleting C:\test\com.product.project\target
[INFO]
[INFO] <<< maven-source-plugin:2.2.1:jar (attach-sources) < generate-sources @ com.product.project <<<
[INFO]
[INFO] --- maven-source-plugin:2.2.1:jar (attach-sources) @ com.product.project ---
[INFO] No sources in project. Archive not created.
[INFO]
[INFO] --- tycho-p2-director-plugin:0.24.0:materialize-products (materialize-products) @ com.product.project ---
[INFO] Installing product productSample for environment win32/win32/x86 to C:\test\com.product.project\target\products\productSample\win32\win32\x86
Installation failed.
The installable unit productSample has not been found.
Application failed, log file location: C:\test\workspace\.metadata\.log

很明显 tycho-p2-director-plugin 找不到任何文件,因为 maven-clean-plugin 是在 tycho-packaging-plugin 之后以某种方式调用的!知道为什么会这样吗?

eclipse-repository 的默认生命周期 [1] 中有一个 maven clean 插件, 但它默认映射到生命周期阶段 'initialize'。

在你的构建日志中使用 id 'default-clean-1' 的干净调用对我来说似乎很奇怪。

这可能是分叉的 Maven 生命周期造成的。 maven-source-plugin 可能对此负责(至少我不希望在构建 eclipse-repository 打包类型时执行 maven-source-plugin)

看起来 [2] 是相关的。尝试删除 maven-source-plugin 或者如果你真的需要它,请尝试使用它的 jar-no-fork 目标。

[1] https://dev.eclipse.org/mhonarc/lists/tycho-user/msg03724.html

[2] Difference between Maven source plugin jar and jar-no-fork goal?