Précédent: Using
a Plexus Component from a Maven Mojo. |
Haut: Background |
The contents of this document are a work in progress
This section will show how to use a Plexus component in a Plexus application.
Maven Archetypes are discussed in detail here.
mvn archetype:create -DarchetypeGroupId=org.codehaus.plexus -DarchetypeArtifactId=plexus-archetype-application \
-DarchetypeVersion=1.0-alpha-1-SNAPSHOT -DgroupId=org.codehaus.plexus -DartifactId=plexus-website-monitor-application \
-DremoteRepositories=http://snapshots.repository.codehaus.org/
<?xml version="1.0"?><project>
<parent>
<artifactId>plexus-examples</artifactId>
<groupId>org.codehaus.plexus.examples</groupId>
<version>1-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-website-monitor-application</artifactId>
<packaging>plexus-application</packaging>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-appserver-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<configurationDirectory>src/conf</configurationDirectory>
<applicationName>foo</applicationName>
<applicationConfiguration>src/conf/application.xml</applicationConfiguration>
<configurationProperties>src/plexus.properties</configurationProperties>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-website-monitor-component</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
mvn eclipse:clean eclipse:eclipse
public class Main
{
public static void main( String[] args )
{
System.out.println ("Hello Plexus application!");
}
}
Having imported the project and added a main class, we now revert the packaging back to value plexus-application.
Next we set up an application assembler plugin for our Plexus application project. To do this,
...
<build>
<plugins>
<plugin>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-appserver-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<configurationDirectory>src/conf</configurationDirectory>
<applicationName>foo</applicationName>
<applicationConfiguration>src/conf/application.xml</applicationConfiguration>
<configurationProperties>src/plexus.properties</configurationProperties>
</configuration>
</plugin>
<!-- Application Assembler plugin config -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>appassembler-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>assemble</goal>
</goals>
</execution>
</executions>
<configuration>
<assembleDirectory>target/site-monitor-app</assembleDirectory>
<includeConfigurationDirectoryInClasspath>
true
</includeConfigurationDirectoryInClasspath>
<programs>
<program>
<name>monitor</name>
<mainClass>
org.codehaus.plexus.site.monitor.Main
</mainClass>
</program>
</programs>
</configuration>
</plugin>
</plugins>
</build>
...
<project>
....
....
<pluginRepositories>
<pluginRepository>
<id>codehaus-mojo-snapshots</id>
<name>Codehaus Snapshots</name>
<url>http://snapshots.repository.codehaus.org/</url>
</pluginRepository>
</pluginRepositories>
</project>
Before we go any further, let us take our Plexus site monitor application for a spin. To do this:
mvn clean package
E:\plexus\plexus-examples\plexus-website-monitor-application\target\site-monitor-app\bin>monitor.bat Hello Plexus application!
Précédent: Using
a Plexus Component from a Maven Mojo. |
Haut: Background |