DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
The first step in the process of using the plugin is downloading and installing the latest version of the Maven2 runtime. The latest Maven2 release and instuctions for getting started with Maven2 can be found at the Maven website.
...
Using the Plugin
The plugin is hosted at the Apache Felix incubator project. The following steps describe how to build and install the plugin into your local Maven2 repository (after having installed Maven2 above):
Using the SVN client of your choice, checkout the To use the maven-bundle-plugin project.
| No Format |
|---|
$ svn co http://svn.apache.org/repos/asf/incubator/felix/trunk/tools/maven2/maven-bundle-plugin
|
Using Maven2, build and install the maven-bundle-plugin by issuing the following Maven2 command in the project directory that was created as a result of the previous step.
| No Format |
|---|
$ mvn install
|
Using the Plugin
To use the maven-bundle-plugin, you first need to add the plugin and some appropriate plugin configuration to your bundle project's POM. Below is an example of a simple OSGi bundle POM for Maven2:
, you first need to add the plugin and some appropriate plugin configuration to your bundle project's POM. Below is an example of a simple OSGi bundle POM for Maven2:
| No Format |
|---|
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>my-osgi-bundles</groupId>
<artifactId>examplebundle</artifactId>
<packaging>bundle</packaging> <!-- (1) -->
<version>1.0</version>
<name>Example Bundle</name>
<dependencies>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.osgi.core</artifactId>
</dependency>
</dependencies> |
| No Format |
<project> <modelVersion>4.0.0</modelVersion> <groupId>my-osgi-bundles</groupId> <artifactId>examplebundle</artifactId> <packaging>bundle</packaging> <!-- (1) --> <version>1.0</version> <name>Example Bundle</name> <build> <plugins> <plugin> <!-- (2) START --> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <extensions>true</extensions> <configuration> <instructions> <Export-Package>com.my.company.api</Export-Package> <Private-Package>com.my.company.*</Private-Package> <Bundle-Activator>com.my.company.Activator</Bundle-Activator> </instructions> </configuration> </plugin> <!-- (2) END --> </plugins> </build> <dependencies><repositories> <dependency><repository> <!-- (3) START --> <groupId>org.apache.felix</groupId><id>apache.snapshots</id> <name>Apache Snapshot Repository</name> <artifactId>org.osgi.core</artifactId><url>http://cvs.apache.org/maven-snapshot-repository</url> </dependency> repository> </dependencies>!-- (3) END --> </repositories> </project> |
Two There are three main things to note: (1) the <packaging> specifier must be "bundle" and , (2) the plugin and configuration specification must be specified (the configuration section is where you will issue instructions to the plugin), and (3) since the plugin is in incubation it is only available in the Apache Snapshot Repository, which must be specified in the set of repositories.
Real-World Example
Consider this more real-world example using Felix' Log Service implementation. The Log Service project is comprised of a single package: org.apache.felix.log.impl. It has a dependency on the core OSGi interfaces as well as a dependency on the compendium OSGi interfaces for the specific log service interfaces. The following is its POM file:
...
| No Format |
|---|
META-INF/MANIFEST.MF
LICENSE
META-INF/
META-INF/maven/
META-INF/maven/org.apache.felix/
META-INF/maven/org.apache.felix/org.apache.felix.log/
META-INF/maven/org.apache.felix/org.apache.felix.log/pom.properties
META-INF/maven/org.apache.felix/org.apache.felix.log/pom.xml
NOTICE
org/
org/apache/
org/apache/felix/
org/apache/felix/log/
org/apache/felix/log/impl/
org/apache/felix/log/impl/Activator.class
org/apache/felix/log/impl/Log.class
org/apache/felix/log/impl/LogEntryImpl.class
org/apache/felix/log/impl/LogException.class
org/apache/felix/log/impl/LogListenerThread.class
org/apache/felix/log/impl/LogNode.class
org/apache/felix/log/impl/LogNodeEnumeration.class
org/apache/felix/log/impl/LogReaderServiceFactory.class
org/apache/felix/log/impl/LogReaderServiceImpl.class
org/apache/felix/log/impl/LogServiceFactory.class
org/apache/felix/log/impl/LogServiceImpl.class
org/osgi/
org/osgi/service/
org/osgi/service/log/
org/osgi/service/log/LogEntry.class
org/osgi/service/log/LogListener.class
org/osgi/service/log/LogReaderService.class
org/osgi/service/log/LogService.class
org/osgi/service/log/package.html
org/osgi/service/log/packageinfo
|
Building the Plugin
The plugin is hosted at the Apache Felix incubator project. The following steps describe how to build and install the plugin into your local Maven2 repository.
Using the SVN client of your choice, checkout the maven-bundle-plugin project.
| No Format |
|---|
$ svn co http://svn.apache.org/repos/asf/incubator/felix/trunk/tools/maven2/maven-bundle-plugin
|
Using Maven2, build and install the maven-bundle-plugin by issuing the following Maven2 command in the project directory that was created as a result of the previous step.
| No Format |
|---|
$ mvn install
|