Why
现有官方插件已经满足不了当前需求,网上也没搜索到满意的插件。
How
1. 编写自定义插件,需要事先安装好Maven的环境。此处省略……
2. 用MAVEN创建一个新的项目
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.1 -DgroupId=com.allen.test -DartifactId=weblogic-maven-plugin -Dpackage=maven-plugin 或者用集成了M2E的Eclipse创建
3. 修改pom.xml
加入maven-plugin的依赖
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-plugin-api</artifactId>
<version>3.0.3</version>
</dependency>
4. 编写plugin的执行类
/**
* @goal info
* @phase compile
* @requiresProject false
*/
public class TestPlugin extends AbstractMojo {
/**
* @parameter expression="${str}"
* @required
*/
private String str;
/**
* @parameter expression="${label}"
* @required
*/
private String lable;
/**
*
* @parameter
*/
private float number;
/**
*
* @parameter
*/
private File file;
/**
*
* @parameter
*/
private URL url;
/**
*
* @parameter
*/
private String[] array;
/**
*
* @parameter
*/
private List<String> items;
/**
*
* @parameter
*/
private Map<String, String> map;
/**
*
* @parameter
*/
private Properties properties;
/**
*
* @parameter
*/
private V v;
public void execute() throws MojoExecutionException, MojoFailureException {
getLog().info("String is : str = " + str);
getLog().info("String is : lable = " + lable);
getLog().info("String is : number = " + number);
getLog().info("String is : file = " + file);
getLog().info("String is : url = " + url);
getLog().info("String is : array = " + Arrays.toString(array));
getLog().info("String is : items = " + items);
getLog().info("String is : map = " + map);
getLog().info("String is : properties = " + properties);
getLog().info("String is : v = " + v);
}
}
执行类需要继承org.apache.maven.plugin.AbstractMojo
实现execute执行方法
注释里面的内容是有意义的,Maven在编译时会获取这些内容,并实现相应的配置
@goal info:表示该插件的服务目标
@phase compile:表示该插件的生效周期阶段
@requiresProject false:表示是否依托于一个项目才能运行该插件
@parameter expression="${name}":表示插件参数,使用插件的时候会用得到
@required:代表该参数不能省略
5. 安装插件
把项目打成jar包, 打开terminal,进入到项目目录(有POM.XML的地方),输入mvn package
之后打包好的jar包会在target目录中
6.部署插件到本地repository
mvn install:install-file -DgroupId=com.allen.test -DartifactId=weblogic-maven-plugin -Dversion=1.0 -Dpackaging=jar -Dfile=${project_dir}/target/${jarFileName}
把${project_dir}换成你的真实目录
${jarFileName}换成你的jar名字
关键是要让maven找到你的jar
7. 测试你的插件
在terminal 中输入
mvn ${groupId}:${artifactId}:${goal} -Dstr=str -Dlabel=label
${groupId},${artifactId} 就是之前插件定义
或者在任一项目中引用
<plugin>
<groupId>${groupdId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<executions>
<execution>
<goals>
<goal>info</goal>
</goals>
<phase>compile</phase>
</execution>
</executions>
<configuration>
<str>fdsaf</str>
<lable>123</lable>
<number>3.15</number>
</configuration>
</plugin>
分享到:
相关推荐
这就是自定义插件,如自定义Zip插件发挥作用的地方。 创建自定义Zip插件涉及以下几个关键步骤: 1. **定义Mojo(Maven Goal)**:Mojo是Maven插件的基本执行单元,类似于一个Java方法。你需要定义一个新的Mojo,...
本文将深入探讨“Maven自定义插件小示例”,以帮助开发者更好地理解和利用Maven的强大功能。 Maven插件是Maven生态系统中的一个重要组成部分,它们提供了各种各样的功能,如编译、测试、打包、部署等。有时,标准...
- 在其他Maven项目中通过`<build><plugins>`或`<reporting><plugins>`标签引入自定义插件。 举例来说,`sogoucloud-maven-plugin`可能是一个为企业内部服务构建定制的Maven插件,它可能包含了上传代码到公司私有...
本篇文章将详细讲解如何在Maven打包过程中执行自定义插件包,以此来满足特定的项目需求。 首先,我们需要了解Maven的生命周期。Maven的生命周期分为三个阶段:clean(清理)、default(构建)和site(站点)。在...
- `MyExtension`类:作为插件的配置对象,允许用户在`build.gradle`文件中自定义插件的行为。 - `build.gradle`(插件项目):配置插件的GAV信息,以及发布插件到Maven仓库的配置。 - `build.gradle`(应用项目):...
Maven Helper是一款针对IntelliJ IDEA(简称Idea)开发的强大插件,主要用于优化Maven项目管理和构建过程。它提供了多种实用功能,帮助开发者更高效地处理Maven依赖关系,排查冲突,以及更好地理解和操作POM.xml配置...
Maven通过插件系统提供了丰富的功能,而“Maven自定义plugin”则是指开发者根据自身需求定制的Maven插件。这篇文章将深入探讨如何创建和使用自定义的Maven插件。 首先,理解Maven插件的工作原理至关重要。Maven插件...
开发者可以编写自定义插件扩展 Maven 的功能,例如生成文档、进行性能测试等。 **Eclipse Maven 插件(M2E)** 1. **集成开发环境**:M2E 将 Maven 的功能无缝地集成到 Eclipse 中,开发者无需离开 IDE 即可执行 ...
Apache Maven 是一个强大的项目管理和构建工具,广泛应用于...通过使用Maven的插件系统,开发者可以高效地完成各种任务,而无需编写自定义脚本。对于大型项目或团队协作来说,Maven的标准化和自动化特性是极其宝贵的。
3. **自定义注释插件**:在MBG中,我们可以创建一个自定义插件,扩展`ICommentGenerator`接口,覆盖其方法来实现自定义的注释逻辑。例如,添加版权信息、作者信息或者生成特定的Javadoc。 4. **Maven打包**:在...
首先,Maven是一个广泛使用的Java项目管理工具,它提供了丰富的插件机制,允许开发者根据项目需求创建自定义插件。在这个场景下,我们创建了一个自定义的Maven插件,它的主要功能是根据用户提供的接口类和参数类信息...
总的来说,通过自定义Maven Archetype,我们可以标准化项目创建过程,提高开发效率,同时确保新项目的结构与团队的编码标准相一致。对于SpringMVC这样的复杂框架,这种自动化初始化可以极大地简化开发者的初期工作,...
这对于自定义插件开发或者调试Maven问题时特别有用。你可以通过阅读源码学习到如何使用Apache Maven API和Maven模型来创建自己的构建工具。 3. Eclipse整合Maven: Eclipse作为一款流行的Java IDE,提供了与Maven...
对于开发和发布自定义Maven插件,我们需要遵循Maven插件开发指南。首先创建一个Maven插件项目,包含`pom.xml`文件,指定`maven-plugin`作为打包类型,并声明插件元数据。例如: ```xml <groupId>your.group.id ...
M2E支持插件配置,用户可以方便地添加、配置和执行自定义插件目标。 6. **更新项目配置**:当POM.xml有变化时,M2E会自动检测并更新项目设置,如编译源码路径、类路径等。 7. **集成Eclipse特性**:M2E还与Eclipse...
例如,你可以创建一个自定义插件来处理特定的数据库字段类型,或者在生成的Java类中添加特定的注解。 7. **最佳实践**: - 为了保持灵活性,推荐将MBG配置文件和生成的代码放在源代码仓库的不同目录下。 - 代码...
本篇文章将详细介绍如何在Eclipse中离线安装Maven插件,并配置自定义的本地仓库路径。 首先,我们需要了解Eclipse Maven插件的重要性。M2Eclipse(Maven Integration for Eclipse)是Eclipse中的一个插件,它允许...