Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tycho-user] Features with root files from nexus -> root files missing

Hi all,

we have a problem building a RCP application consisting of some features that contain root files. When we build locally everything works like expected and the root files are included into the exported application. When we deploy the features to nexus and then separately build the RCP product (to get the already built features from nexus), the build succeeds, but the root files of the features are missing.

I don't know at this point, if this is a failure in nexus P2 plugins, or in tycho (or both).

After a short review of the code of nexus P2 plugins there seems to be no handling for binary artifacts. But tycho is not asking for root artifacts at all as can be seen in the log of nexus: 127.0.0.1 - - [15/Mai/2015:17:13:51 +0200] "GET /nexus/content/repositories/snapshots/.meta/p2/plugins/example-bundle_0.1.0.201505151448.jar HTTP/1.1" 200 61422 127.0.0.1 - - [15/Mai/2015:17:13:51 +0200] "GET /nexus/content/repositories/snapshots/.meta/p2/features/example-feature-2_0.2.0.201505151448.jar HTTP/1.1" 200 14231 127.0.0.1 - - [15/Mai/2015:17:13:51 +0200] "GET /nexus/content/repositories/snapshots/.meta/p2/features/example-feature_0.1.0.201505151448.jar HTTP/1.1" 200 14176

I tested it with the tycho RCP example.

Does anyone have an idea how to solve/fix the problem. Or can we think of any workaround? What we need is to put some files into the directory where RCP is materialized.

HOW TO REPRODUCE:
-----------------
Setup a nexus with P2 plugins activated for snapshot repository.
Take the RCP tycho example (http://git.eclipse.org/c/tycho/org.eclipse.tycho-demo.git/tree/itp04-rcp) and add some nexus distribution management lines to parent pom.xml:

    <repositories>
        <repository>
            <id>local</id>
            <layout>p2</layout>
<url>http://localhost:8081/nexus/content/repositories/snapshots/.meta/p2</url>
            <releases>
                <enabled>false</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
                <checksumPolicy>fail</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

    <distributionManagement>
        <snapshotRepository>
            <id>local</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>

Than do following steps:

#initial build
dir: itp04-rcp
$ mvn install
-> works like expected. Complete RCP is installed in eclipse-repository/target

#deployment to nexus
dir: itp04-rcp
$ mvn deploy
-> works like expected, all artifacts are deployed to nexus (including example-feature_root zip file)

#cleanup of local artifacts
dir: itp04-rcp
$ mvn clean
$ remove "example" and "p2" directory from maven repository (~user/.m2/repository/) to force download from nexus

#build product with artifacts from nexus
dir: itp04-rcp/eclipse-repository
$ mvn install
-> maven fetches the plugin and features from nexus. root files of example-feature are missing in the product installation and the created repo in /itp04-rcp/eclipse-repository/target

THX
Best regards,
Ingo


Back to the top