Fork me on GitHub

Plugin Details

This report describes goals, parameters details, requirements and sample usage of this plugin.

Goals

Goals available for this plugin:

Goal Description
tycho-wrap:verify Verifies that the OSGi metadata of a plain Maven project's main artifact is usable, without requiring a full OSGi integration test.

The manifest of the project artifact (e.g. generated by the maven-bundle-plugin or bnd-maven-plugin) is checked for a valid Bundle-SymbolicName and Bundle-Version. Then every non-optional Import-Package is matched against the packages provided by the running JVM and the project's dependencies. The build fails if an import can not be satisfied, or is only available from a dependency that is not an OSGi bundle. Each problem is reported with a hint how to resolve it.

This mojo does not need an Eclipse/Tycho build and can be added to any Maven project, bound by default to the verify phase and typically used after the manifest was generated:

<plugin>
  <groupId>org.eclipse.tycho</groupId>
  <artifactId>tycho-wrap-plugin</artifactId>
  <version>${tycho-version}</version>
  <executions>
    <execution>
      <goals><goal>verify</goal></goals>
    </execution>
  </executions>
</plugin>
tycho-wrap:wrap This mojos allows creating OSGi jars by specifying an arbitrary input and output, some bnd instructions and (optionally) attach the result to the maven project. This has the advantage that projects are able to publish two "flavors" of their artifact: a plain one and an OSGi-fied one that could help to convince projects to provide such things as it has zero influence to their build and ways how they build artifacts.

See also the verify goal to validate the OSGi metadata of a project.

System Requirements

The following specifies the minimum requirements to run this Maven plugin:

Maven 3.9.12
JDK 21

System Requirements History

The following specifies the minimum requirements to run this Maven plugin for historical versions:

Plugin Version Maven JDK
from 5.0.0 to 5.0.4 3.9.9 21
from 4.0.10 to 4.0.13 3.9.0 17

Usage

You should specify the version in your project's plugin configuration:

<project>
  ...
  <build>
    <!-- To define the plugin version in your parent POM -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.tycho</groupId>
          <artifactId>tycho-wrap-plugin</artifactId>
          <version>6.0.0-SNAPSHOT</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>org.eclipse.tycho</groupId>
        <artifactId>tycho-wrap-plugin</artifactId>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

For more information, see "Guide to Configuring Plug-ins"