|
How do I attach a plugin goal to a particular phase of a maven lifecycle?
Author: Deron Eriksson
Description: This maven tutorial describes how to download a plugin from a remote Archiva repository.
Tutorial created using:
Windows XP || JDK 1.5.0_09 || Eclipse Web Tools Platform 2.0 (Eclipse 3.3.0)
In other tutorials, we examined the phases of the clean, default (build), and site lifecycles. It is possible to attach a goal to one of these phases so that it is executed when the phase is executed. In another tutorial, we created a plugin called "maven-howdy-plugin" containing the goal "howdy-world". Here, we will see how to attach this goal to the "validate" phase of the mavenSW default lifecycle. The following fragment of a pom.xml file shows how to attach the "howdy-world" goal to the "validate" lifecycle phase. To do this, we specify the executions.execution.goals.goal to be "howdy-world", and we specify the executions.execution.phase to be "validate". Plugin entry from pom.xml... <plugin> <groupId>com.maventest</groupId> <artifactId>maven-howdy-plugin</artifactId> <version>1.0-SNAPSHOT</version> <executions> <execution> <goals> <goal>howdy-world</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> ... Here is the pom.xml file for a project called "aproject". It contains the plugin code to attach "howdy-world" to the "validate" phase. The pluginRepositories section was used to download the plugin from an ArchivaS remote snapshots repository. pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.maventest</groupId> <artifactId>aproject</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>aproject</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>com.maventest</groupId> <artifactId>maven-howdy-plugin</artifactId> <version>1.0-SNAPSHOT</version> <executions> <execution> <goals> <goal>howdy-world</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> </plugins> </build> <pluginRepositories> <pluginRepository> <id>archiva.snapshots</id> <url>http://192.168.1.7:8081/archiva/repository/snapshots</url> </pluginRepository> </pluginRepositories> </project> To test, I'll perform a "mvn validate" on the "aproject" project.
The goal successfully executed for the "validate" phase, as shown here in the console output. Console output from 'mvn validate' on 'aproject'
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building aproject
[INFO] task-segment: [validate]
[INFO] ------------------------------------------------------------------------
[INFO] snapshot com.maventest:maven-howdy-plugin:1.0-SNAPSHOT: checking for updates from archiva.snapshots
[INFO] [howdy:howdy-world {execution: default}]
[INFO] Hi there!!!
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Tue Feb 19 02:18:43 PST 2008
[INFO] Final Memory: 1M/2M
[INFO] ------------------------------------------------------------------------
Related Tutorials:
|

