| <html><head> |
| <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
| <title>8.6 Maven plugin</title><link rel="stylesheet" href="css/stylesheet.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.74.0"><link rel="home" href="index.html" title="Virgo Tools Guide"><link rel="up" href="ch08.html" title="8. Installation and Release Notes"><link rel="prev" href="ch08s05.html" title="8.5 Migration"><link rel="next" href="ch08s07.html" title="8.7 Importing Virgo Projects into Eclipse"><!--Begin Google Analytics code--><script type="text/javascript"> |
| var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
| document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
| </script><script type="text/javascript"> |
| var pageTracker = _gat._getTracker("UA-2728886-3"); |
| pageTracker._setDomainName("none"); |
| pageTracker._setAllowLinker(true); |
| pageTracker._trackPageview(); |
| </script><!--End Google Analytics code--></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">8.6 Maven plugin</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch08s05.html">Prev</a> </td><th width="60%" align="center">8. Installation and Release Notes</th><td width="20%" align="right"> <a accesskey="n" href="ch08s07.html">Next</a></td></tr></table><hr></div><div class="section" lang="en"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Maven_plugin"></a>8.6 Maven plugin</h2></div></div></div><p>To support the development of OSGi bundles for Eclipse Virgo with Maven a Maven plugin is available. This plugin is able to start/stop a local Eclipse Virgo instance. Moreover it is possible to deploy/undeploy/refresh bundles via Maven. </p><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Build"></a>Build</h3></div></div></div><p>In order to use the plugin one has to download the source code from |
| <a class="ulink" href="https://github.com/frieder/virgo-maven-plugin" target="_top">Github</a>&nbsp;and build the binary manually. This can be easily done by executing the following Maven command in the root folder of the plugin where the pom.xml file is located. |
| < pre>mvn clean install</pre> |
| Moreover to generate the documentation just execute the following Maven command (or take the one provided in the repository on Github). |
| < pre>mvn clean&nbsp;plugin:xdoc javadoc:javadoc jxr:jxr site |
| < /pre> |
| </p></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Goals"></a>Goals</h3></div></div></div><p>The plugin provides a set of Maven goals that allow different actions. </p><table><tr> |
| <td rowspan="1" colspan="1"> |
| <span class="bold"><strong>Goal</strong></span> |
| </td> |
| <td rowspan="1" colspan="1"> |
| <span class="bold"><strong>Description</strong></span> |
| </td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:start</code> </td> |
| <td rowspan="1" colspan="1">Starts a Virgo instance by executing the provided startup script. <br> </td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:shutdown</code> </td> |
| <td rowspan="1" colspan="1">Stops a running Virgo instance.</td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:immediateShutdown</code> </td> |
| <td rowspan="1" colspan="1">Stops a running Virgo instance immediately.</td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:deploy</code> </td> |
| <td rowspan="1" colspan="1">Deploys an OSGi bundle to a running Virgo instance.</td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:undeploy</code> </td> |
| <td rowspan="1" colspan="1">Undeploys an OSGi bundle from a running Virgo instance.</td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:refresh</code> </td> |
| <td rowspan="1" colspan="1">Refreshs an already installed module on a running Virgo instance.</td> |
| </tr><tr> |
| <td rowspan="1" colspan="1"><code>virgo:bundleRefresh</code> </td> |
| <td rowspan="1" colspan="1">Refreshs an already installed OSGi bundle on a running Virgo instance.</td> |
| </tr></table></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="Simple_example_POM"></a>Simple example POM</h3></div></div></div><p>Once the plugin has been build and installed in the local Maven repository it can be used within a Maven project. Following is a simple example of a pom file that uses the Maven plugin.&nbsp; |
| < pre>&lt;project xmlns=" |
| <a class="ulink" href="http://maven.apache.org/POM/4.0.0&quot" target="_top">http://maven.apache.org/POM/4.0.0&quot</a>; xmlns:xsi=" |
| <a class="ulink" href="http://www.w3.org/2001/XMLSchema-instance&quot" target="_top">http://www.w3.org/2001/XMLSchema-instance&quot</a>; |
| xsi:schemaLocation=" |
| <a class="ulink" href="http://maven.apache.org/POM/4.0.0" target="_top">http://maven.apache.org/POM/4.0.0</a> |
| <a class="ulink" href="http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt" target="_top">http://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&amp;gt</a>; |
| &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt; |
| &lt;groupId&gt;org.example.osgi&lt;/groupId&gt; |
| &lt;artifactId&gt;test-bundle&lt;/artifactId&gt; |
| &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt; |
| &lt;packaging&gt;bundle&lt;/packaging&gt; |
| &lt;name&gt;OSGi Test Bundle&lt;/name&gt; |
| &lt;properties&gt; |
| &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt; |
| &lt;/properties&gt; |
| &lt;build&gt; |
| &lt;plugins&gt; |
| &lt;plugin&gt; |
| &lt;groupId&gt;org.apache.felix&lt;/groupId&gt; |
| &lt;artifactId&gt;maven-bundle-plugin&lt;/artifactId&gt; |
| &lt;version&gt;2.3.6&lt;/version&gt; |
| &lt;extensions&gt;true&lt;/extensions&gt; |
| &lt;configuration&gt; |
| &lt;instructions&gt; |
| &lt;Bundle-SymbolicName&gt;${project.groupId}.${project.artifactId}&lt;/Bundle-SymbolicName&gt; |
| &lt;Bundle-Name&gt;${project.name}&lt;/Bundle-Name&gt; |
| &lt;Bundle-Version&gt;${project.version}&lt;/Bundle-Version&gt; |
| &lt;/instructions&gt; |
| &lt;/configuration&gt; |
| &lt;/plugin&gt; |
| &lt;plugin&gt; |
| &lt;groupId&gt;net.flybyte.virgo&lt;/groupId&gt; |
| &lt;artifactId&gt;virgo-maven-plugin&lt;/artifactId&gt; |
| &lt;version&gt;1.0.0&lt;/version&gt; |
| &lt;configuration&gt; |
| &lt;virgoRoot&gt;C:/Java/virgo-tomcat-server-3.0.2.RELEASE&lt;/virgoRoot&gt; |
| &lt;/configuration&gt; |
| &lt;/plugin&gt; |
| &lt;/plugins&gt; |
| &lt;/build&gt; |
| & lt;/project&gt; |
| < /pre> |
| More examples can be found in the documentation. Following are some exemplary Maven commands. |
| < pre>mvn virgo:start &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;-- will start a Virgo instance |
| mvn clean package virgo:deploy &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&lt;-- will create an artifact and deploy it to Virgo</pre> |
| </p></div></div><!--Begin LoopFuse code--><script src="http://loopfuse.net/webrecorder/js/listen.js" type="text/javascript"></script><script type="text/javascript"> |
| _lf_cid = "LF_48be82fa"; |
| _lf_remora(); |
| </script><!--End LoopFuse code--><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch08s05.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="ch08.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="ch08s07.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">8.5 Migration </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> 8.7 Importing Virgo Projects into Eclipse</td></tr></table></div></body></html> |