<?xml version="1.0" encoding="UTF-8"?> <project> ... <packaging>deployment-package</packaging> ... <build> <plugins> <plugin> <groupId>net.sourceforge.mvn-dp-plugin</groupId> <artifactId>osgi-deployment-maven-plugin</artifactId> <version>PLUGIN_VERSION</version> <extensions>true</extensions> <configuration> <deploymentPackage> ... </deploymentPackage> </configuration> </plugin> </plugins> </build> </project>
mvn osgi-deployment:package
By default all resources are placed in the root of the resulting Deployment-Package. To specify an alternative path you place a targetPath element to a bundleResource or a processedResource element.
... <plugin> <groupId>net.sourceforge.mvn-dp-plugin</groupId> <artifactId>osgi-deployment-maven-plugin</artifactId> <version>PLUGIN_VERSION</version> ... <configuration> <deploymentPackage> <bundleResource> <groupId>foo.bar</groupId> <artifactId>bar</artifactId> <version>0.0.1</version> <targetPath>bundles</targetPath> </bundleResource> <processedResource> <filePath>readme.not</filePath> <processor>foo</processor> <targetPath>resources</targetPath> </processedResource> </deploymentPackage> </configuration> </plugin>
The resulting Deployment-Package would then look like:
YOUR_DEPLOYMENT_PACKAGE-VERSION.dp +- bundles | +- foo.bar.bar-0.0.1.jar +- resources | +- readme.not +- META-INF | +- MENIFEST.MF |
By default the manifest file of the resulting Deployment-Package contains some extra data entries. Here is an example:
... Created-By: 1.6.0_04 (Sun Microsystems Inc.) Tool: osgi-deployment-maven-plugin 0.1.3 Created-At: 1206459281219 ...
You can disable this feature by adding a configuration element writeExtraData
... <plugin> <groupId>net.sourceforge.mvn-dp-plugin</groupId> <artifactId>osgi-deployment-maven-plugin</artifactId> <version>PLUGIN_VERSION</version> ... <configuration> <writeExtraData>false</writeExtraData> ... </configuration> </plugin>