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?
我正在尝试使用 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?