You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by tb...@apache.org on 2005/08/23 08:11:15 UTC

svn commit: r239360 - /incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt

Author: tbennett
Date: Mon Aug 22 23:11:13 2005
New Revision: 239360

URL: http://svn.apache.org/viewcvs?rev=239360&view=rev
Log:
How-to document for the maven-osgi-plugin.

Added:
    incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt   (with props)

Added: incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt
URL: http://svn.apache.org/viewcvs/incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt?rev=239360&view=auto
==============================================================================
--- incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt (added)
+++ incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt Mon Aug 22 23:11:13 2005
@@ -0,0 +1,114 @@
+This document describes how to use the maven-osgi-plugin for Maven2.
+
+NOTE: This plugin is only for Maven2.  It will not work with Maven 1.x versions.
+
+NOTE: This plugin is very immature and is a project under development. Help
+with the development of this plugin is welcome. A development roadmap for this
+plugin will be posted at http://issues.apache.org/jira/browse/FELIX at some
+point in the near future.
+
+HOW-TO
+======
+
+1. Install maven-2.0-alpha-3 release on your local machine.  You can download
+a binary distro from http://maven.apache.org/maven2/download.html along with
+some instructions for getting started with Maven2.
+
+2. You'll need an interim build of Maven2's maven-archiver that I've made
+available at:
+
+    https://svn.apache.org/repos/asf/incubator/felix/trunk/sandbox/tbennett/maven-archiver
+
+I've submitted patches to the Maven team that include these modifications to
+the maven-archiver-plugin.  However, they are not scheduled to be released
+until the maven-2.0-beta-1 release.  You'll need to use this version of
+maven-archiver until that release is available from the Maven team.
+
+Once you've done an SVN checkout of the maven-archiver from my sandbox, simply
+execute the following command from the maven-archiver project root directory:
+
+    $ m2 install
+
+This will build and locally install this interim version of the maven-archiver-plugin.
+
+3. Perform an SVN checkout of the maven-osgi-plugin available at:
+
+    https://svn.apache.org/repos/asf/incubator/felix/trunk/tools/maven2/maven-osgi-plugin
+
+Once you've done this, simply execute the following command from the
+maven-osgi-plugin project root directory:
+
+    $ m2 install
+
+This will build and locally install the maven-osgi-plugin.
+
+4. You can now use the plugin with a Maven2 POM to build an OSGi bundle jar
+artifact.  An example of what a bundle's Maven2 POM might look like that uses
+this plugin is shown below.
+
+After compiling your bundle using the standard Maven2 compile goal:
+
+    $ m2 compile
+
+You can build the OSGi bundle artifact by issuing the following maven2
+command:
+
+    $ m2 osgi:osgi-jar
+
+Note the definition of the maven-osgi-plugin in the <build/> section of the
+POM, along with the specification of the custom manifest entries you'd like
+Maven2 to include in the jar's manifest file.  Currently, the only manifest
+entries that I've added support so far are: Bundle-Activator, Bundle-Name,
+Bundle-Description, Bundle-Version, Bundle-Vendor, Bundle-Date,
+Bundle-UpdateLocation, Export-Package, and Metadata-Location.  More support
+will be added soon.
+
+The plugin also takes advantage of Maven2's <scope/> specifier for given
+project dependency.  If the scope specifier is either "compile" or
+"runtime", the given dependency will be bundled in the root directory of
+the jar, and it's filename added to the Bundle-Classpath entry in the jar's
+manifest file.  This is done automatically by simply setting the dependency
+scope.  In the case of the below example, the osgi-framework-1.2.jar
+dependency that my-bundle specifies has scope of "provided".  This tells
+the maven-osgi-plugin that the OSGi container will *provide* this dependency
+at runtime, and therefore this dependency will not need to be embedded into
+the bundle's jar file.
+
+<project>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>gov.bna.jis.osgi.bundle</groupId>
+  <artifactId>my-bundle</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0-SNAPSHOT</version>
+  <name>OSGi Test Bundle</name>
+  <build>
+      <plugins>
+        <plugin>
+           <groupId>org.apache.maven.plugins</groupId>
+           <artifactId>maven-osgi-plugin</artifactId>
+           <version>0.1</version>
+           <configuration>
+              <osgiManifest>
+			    <bundleActivator>gov.bna.jis.osgi.bundle.Activator</bundleActivator>
+				<bundleName>My Bundle Name</bundleName>
+				<bundleDescription>My Bundle Description</bundleDescription>
+				<bundleVendor>Metro Government of Nashville-Davidson Co.</bundleVendor>
+				<bundleVersion>1.0.0</bundleVersion>
+			  </osgiManifest>
+           </configuration>
+        </plugin>
+      </plugins>
+  </build>
+  <dependencies>
+      <dependency>
+        <groupId>osgi</groupId>
+        <artifactId>osgi-framework</artifactId>
+        <version>1.2</version>
+		<scope>provided</scope>
+      </dependency>
+  </dependencies>
+</project>
+
+There's much more functionality to add to this plugin, but it's a start.
+
+-tbennett
\ No newline at end of file

Propchange: incubator/felix/trunk/tools/maven2/maven-osgi-plugin/maven-osgi-plugin-howto.txt
------------------------------------------------------------------------------
    svn:eol-style = native