简体   繁体   中英

Unable to build a POM-less OSGi bundle with tycho

I've a "Hello, World!" OSGi bundle based on the tycho's 0.24 POM-less build example . The project root includes a directory with the bundle code named com.softalks.tycho.bundle and the following build configuration files

.mvn/extensions.xml

<?xml version="1.0" encoding="UTF-8"?>
<extensions>
    <extension>
        <groupId>org.eclipse.tycho.extras</groupId>
        <artifactId>tycho-pomless</artifactId>
        <version>0.24.0</version>
    </extension>
</extensions>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.softalks.tycho</groupId>
    <artifactId>com.softalks.tycho.parent</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

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

    <modules>
        <module>com.softalks.tycho.bundle</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.eclipse.tycho</groupId>
                <artifactId>tycho-maven-plugin</artifactId>
                <version>0.24.0</version>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>
</project>

My build environment:

Apache Maven 3.3.9
Java version: 1.7.0_95, vendor: Oracle Corporation
Java home: /usr/lib/jvm/java-7-openjdk-amd64/jre
OS name: "linux", version: "3.13.0-61-generic", arch: "amd64", family: "unix"

And the Maven response:

Child module /home/runner/tycho/com.softalks.tycho.bundle/pom.xml of /home/runner/tycho/pom.xml does not exist

I've also tried to add this to my pom (as the example does) with no success:

    <pluginRepositories>
        <pluginRepository>
            <id>tycho-snapshots</id>
            <url>https://repo.eclipse.org/content/repositories/tycho-snapshots/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

What am I doing wrong?

You have to provide a pom.xml in your /home/runner/tycho/com.softalks.tycho.bundle/ directory. And yes 'pomless' but the parent pom in this directory has to be written.

<project xmlns="http://maven.apache.org/POM/4.0.0" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
    http://maven.apache.org/maven-v4_0_0.xsd"> 

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.softalks.tycho</groupId>
    <artifactId>bundles</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>com.softalks.tycho</groupId>
        <artifactId>com.softalks.tycho.parent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <modules>
        <module>...All your modules...</module>
    </modules>

</project>

All the pom.xml files in the modules directories mentioned here will be generated automatically.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM