`
shake822
  • 浏览: 610 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Maven3.x插件编写与使用

阅读更多
       网上有很多Maven插件的编写,我在这里只是对自己做的总结下。
第一步:插件编写:
插件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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>comtop.maven</groupId>
	<artifactId>MavenPlugin</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>maven-plugin</packaging>
	<distributionManagement>
		<snapshotRepository>
			<id>shakeMavenRepository</id>
			<url>http://10.10.31.108:8888/nexus/content/repositories/shakeMavenRepository</url>
		</snapshotRepository>
	</distributionManagement>
	<dependencies>
		<dependency>
			<groupId>org.apache.maven</groupId>
			<artifactId>maven-plugin-api</artifactId>
			<version>3.0.5</version>
		</dependency>
	</dependencies>
</project>
 这里需要注意的是Maven插件的<packaging>必须是maven-plugin,Maven插件必须依赖maven-plugin-api。
插件JAVA文件
package com.comtop.maven.plugin;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;

/**
 * 一个Maven插件
 * 
 * @goal info
 * @phase compile
 * @requiresProject false
 */
public class MainMojo extends AbstractMojo {
	/**
	 * @parameter expression="${userName}"
	 * @required
	 */
	private String userName;
	/**
	 * @parameter expression="${userAge}"
	 * @required
	 */
	private int userAge;

	public void execute() throws MojoExecutionException, MojoFailureException {
		getLog().info(this.toString());
	}

	public String toString() {
		return "userName is : " + userName + "userAge is : "
				+ userAge;
	}
}
 Java类需要继承org.apache.maven.plugin.AbstractMojo,实现execute()方法。需要传递的参数可以通过注释语句引入进来。具体的注释参考http://maven.apache.org/developers/mojo-api-specification.html
然后将插件部署到nexus仓库中,没搭建nexus的使用mvn install安装插件
第二步:插件使用:
使用插件的pom.xml
<plugin>
	<groupId>comtop.maven</groupId>
	<artifactId>MavenPlugin</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<configuration>
		<userAge>122</userAge>
		<userName>shake</userName>
	</configuration>
	<executions>
		<execution>
			<phase>test</phase>
			<goals>
				<goal>info</goal>
			</goals>
		</execution>
	</executions>
</plugin>
 文件中groupId、artifactId、version都是插件pom中对应的。configuration里面配置插件类中需要的参数。executions表示插件的执行时机,这里定义在test阶段执行插件goal为info的插件内容。这样在mvn test时,就能执行到我们的插件execute方法。如果没有搭建nexus仓库。使用
mvn comtop.maven:MavenPlugin:0.0.1-SNAPSHOT:info  -DuserName='shake' -DuserAge=2
 测试插件是否成功。格式为:groupId:artifactId:version:goal -D参数
分享到:
评论

相关推荐

    maven3.x几个版本免安包.rar

    "maven3.x几个版本免安包.rar" 提供了Maven 3.x的多个版本,无需安装即可使用,这对于开发者在不同环境中快速配置或测试Maven环境非常方便。 1. Maven简介: Maven 是Apache软件基金会的一个项目,由Jason van Zyl...

    亲测好用的maven3.zip

    Maven3是一个广泛使用的Java项目管理工具,由Apache软件基金会开发。它简化了构建、依赖管理和项目文档的生成,使得开发人员能够更高效地进行软件开发工作。Maven3的核心理念是通过标准化项目结构和使用XML格式的...

    IDEA下maven新建servlet3.x/web3.x工程模版

    【标题】"IDEA下maven新建servlet3.x/web3.x工程模版"涉及到的主要知识点是使用IntelliJ IDEA(IDEA)结合Maven构建一个支持Servlet 3.x和Web 3.x标准的Java Web项目。Maven是一个强大的项目管理工具,能够帮助...

    maven配置.docx

    3. 在"Maven Home Directory"中,指定Maven的安装路径,通常是`/path/to/apache-maven-x.x.x`。 4. 在"User Settings File"中,填入`settings.xml`的路径,这通常应该是`%USER_HOME%/.m2/settings.xml`。 5. "Local ...

    maven3.6.3.zip

    3. **增强的插件管理**:Maven 3.6.3对插件管理机制进行了改进,支持更好的插件版本控制和自动升级,使得开发者可以更灵活地使用和管理插件。 4. **POM处理优化**:对POM解析和处理进行了优化,提升了处理大型POM...

    maven2快速入门教程

    3. **配置插件**:在&lt;build&gt;&lt;plugins&gt;中配置插件,如maven-compiler-plugin用于编译。 ### 五、Maven2常用命令 1. `mvn clean`:清理项目生成的目标文件。 2. `mvn compile`:编译源代码。 3. `mvn test`:执行...

    maven3.6.1和3.6.3安装包

    4. **插件**: Maven通过插件机制扩展功能,如编译、测试、打包、部署等都由对应的插件实现。 5. **项目信息管理**: POM文件不仅包含依赖信息,还记录项目的基本信息,如作者、版本、描述等。 **使用Maven** 1. **...

    maven3.8下载包

    4. **插件更新**:内置的Maven插件可能有新的功能或更新,以支持最新的技术栈。 5. **更好的用户体验**:可能改进了命令行接口,提供更友好的提示和反馈。 在使用Maven 3.8时,你需要根据自己的系统环境(Windows、...

    maven3 的安装与配置

    **Maven 3的安装与配置** Maven是一款强大的Java项目管理工具,它负责构建、依赖管理和项目信息管理。在本文中,我们将详细介绍如何安装和配置Maven 3。 **一、Maven 3的安装步骤** 1. **下载**:访问Maven官方...

    maven及eclipse插件下载和使用.zip

    Apache Maven 3.x是当前广泛使用的版本,其中3.3.9是一个稳定且常用的发行版。 ** Maven的组成部分 ** 1. **POM(Project Object Model)**: Maven的核心概念,它是项目对象模型,是一个XML文件,包含了项目的配置...

    apache-maven-3.3.3

    3. **插件系统**:Maven的插件机制允许开发者扩展其功能。例如,编译、测试、打包、部署等构建过程都由特定的插件执行。Maven 3.3.3包含了许多内置插件,如maven-compiler-plugin用于编译源代码,maven-surefire-...

    apache-maven-3.8.8-bin

    Maven 的目标是简化项目构建过程,通过标准化构建生命周期和插件机制,使得开发者可以更专注于编写代码,而不是配置构建脚本。 在给定的“apache-maven-3.8.8-bin”压缩包中,包含了 Maven 的最新稳定版本 3.8.8。...

    Jfinal3.x eclipse插件

    以下是使用Jfinal3.x Eclipse插件的主要步骤: 1. **插件安装**:用户可以通过Eclipse的内置更新站点或者从官方网站下载插件安装包,然后按照Eclipse的插件安装向导进行安装。 2. **创建项目**:在Eclipse中选择...

    maven-compiler-plugin-3.8.0-source-release插件

    `maven-compiler-plugin-3.8.0-source-release` 版本是 Maven 编译插件的一个特定版本,该版本包含了对 Maven 3.x 系列的支持。这个插件的主要任务包括: 1. **源代码编译**:默认使用 JDK 的 `javac` 编译器进行 ...

Global site tag (gtag.js) - Google Analytics