2
votes

I am trying to use tycho-p2-director-plugin in order to materialize a product but the plugin seems to delete the artifacts near the execution end. Moreover the line up of the plugins called is weird: "tycho-p2-repository-plugin" --> "tycho-packaging-plugin" --> "maven-clean-plugin" --> "tycho-p2-director-plugin".

Following is the pom.xml of the product project:

...
<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>

Following is the output of invoking "mvn package" on the product project:

[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

It's apparent the tycho-p2-director-plugin will not find any files since maven-clean-plugin was somehow called after tycho-packaging-plugin! Any ideas why this is happening?

1

1 Answers

4
votes

there is a maven clean plugin in the default lifecycle [1] of eclipse-repository, but it's mapped to lifecycle phase 'initialize' by default.

the clean invocation with id 'default-clean-1' in your build log seems strange to me.

This could be caused by a forked maven lifecycle. The maven-source-plugin may be responsible for this (at least I would not expect a maven-source-plugin execution when building an eclipse-repository packaging type)

Looks like [2] is related. Try to either remove maven-source-plugin or if you really need it, try using its jar-no-fork goal instead.

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

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