最近一直在学习Maven,今天看到了Maven插件方面的知识了,具体插件是什么,怎么编写自定义插件等等,这一系列的问题的理解了,不是专门来编写插件的,只是为了了解插件的编写的基本流程,至于深入理解,这里还不到那层次,比如需要了解的maven的内部原理:包括如何管理软件组织,如果能够自定义声明周期等等,就暂未深层次去了解了。
1、什么是插件
一个maven插件是包含一个插件描述符和一个或者多个Mojo的maven构件,一个Mojo可以被认为是maven中的一个目标,每一个目标对应了一个Mojo。这里我一直有疑问,Mojo是什么?Mojo不仅仅是Maven中的一个目标,它是一个由Plexus管理的组件,可以引用其他Plexus组件。另外,Maven是基于Plexus,对这个不了解,就挺说是一IoC容器。
2、创建一个插件项目
2.1 通过eclipse,new->other->maven project,选择archetypeGroupID为org.apache.maven.archetypes,archetypeArtifactId为maven-archetype-mojo的Archetype创建一个插件项目,m2eclipse将帮你生成一个MyMojo.java的文件,其实直接可以mvn install后,然后就可以直接用了,这里就自己来更改实现一个打印的简单函数
/**
* Goal which print the message
*
* @goal print
*
*/
public class MyMojo extends AbstractMojo
{
/**
* Any Object to print out
* @parameter expression="${print.message}" default-value="Maven Plugin"
*/
private Object message;
public void execute() throws MojoExecutionException, MojoFailureException
{
getLog().info(message.toString());
}
}
通过Run as-->maven install就可以使用如下的命令[mvn groupId:artifactId:version:goal]看到效果了:
mvn net.cl.plugins:maven-first-plugin:0.0.1-SNAPSHOT:print,输出如下图所示:
同样也可以自定义消息:
mvn net.cl.plugins:maven-first-plugin:0.0.1-SNAPSHOT:print -Dprint.message="Hello World",输出如下图所示:
完。
参考资料:《maven-definitive-guide_zh》
- 大小: 48.4 KB
- 大小: 42.2 KB
分享到:
相关推荐
maven的插件demo,包含了与maven声明周期的绑定,自定义参数等,但是这就是一个demo,只是演示了maven插件的编写方式
也就是说,使用简单的 Groovy 脚本根据需要实例化反射,而无需使用(和编写)Maven 插件的麻烦...... 例如: < plugin> < groupId>org.codehaus.gmavenplus</ groupId> < artifactId>gmavenplus-plugin...
第3章 Maven使用入门16.3.1 编写POM17.3.2 编写主代码18.3.3 编写测试代码19.3.4 打包和运行20.3.5 使用Archetype生成项目骨架21.3.6 m2eclipse简单使用22.3.7 NetBeans Maven插件简单使用23.3.8 小结
Kotlin Maven插件工具 使用Kotlin编写的插件的Maven插件元数据提取器。 该项目还是一个新项目,因此请报告任何发现的问题,以提供帮助。Maven插件对Kotlin的支持部分可用于Kotlin文件。 它能够从注释中提取所有信息...
docker-maven-plugin 一个用于构建和推送Docker映像的Maven插件。状态:无效我们建议您改为使用 。docker-maven-plugin的未来该插件是Spotify最初使用的Maven插件,用于从Java服务中构建Docker映像。 它最初创建于...
第12章:编写自定义插件/12.4 使用自定义插件/12.4.1 在新建的Maven项目中引用自定义插件 第12章:编写自定义插件/12.4 使用自定义插件/12.4.2 测试自定义插件 第12章:编写自定义插件/12.4 使用自定义插件/12.4.3 ...
smart-doc-maven-plugin是smart-doc官方团队开发的maven插件。 这个插件可以从 smart-doc 1.7.9 获得。 使用 smart-doc-maven-plugin 可以更轻松地将 smart-doc 集成到您的项目中,并且集成更轻量级。 您不再需要在...
SpEL Maven插件 该插件扫描您的类文件以查找配置的注释,然后验证注释中包含的所有Spring Expressions。 这个插件是做什么的? 在表达式中查找语法错误,直到运行时您才可能找到 对表达式进行基本的静态分析,以...
2.6 安装 NetBeans Maven 插件 13. 2.7 Maven 安装最佳实践 14. 2.8 小结 15. 第 3 章 Maven 使用入门 16. 3.1 编写 POM 17. 3.2 编写主代码 18. 3.3 编写测试代码 19. 3.4 打包和运行 20. 3.5 使用 Archetype 生成...
当前,有关Maven插件/ Maven扩展等的集成测试的基本内容是,现有的解决方案不是基于Apache Maven项目悠久的开发历史而非常简洁和全面的。 一段时间内有很多不同的方法,但是从我的角度来看,它们都缺少一件事:简单...
JavaPoet Maven插件 一个简单的maven插件,可让您使用生成项目的源。 开发JavaFile Generator 要开发JavaFile生成器, 编写public static方法 仅有一个java.lang.String参数,并且 返回java.lang.Iterable<com> 。...
maven使用入门3.1 编写pom3.2 编写主代码3.3 编写测试代码3.4 打包和运行3.5 使用archetype生成项目骨架3.6 m2eclipse简单使用3.6.1 导入maven项目3.6.2 创建maven项目3.6.3 运行mvn命令3.7 netbeans ...
rest2java 一个Maven插件,用于根据JSON规范生成RESTful Java客户端。Rest2Java的早期开发和反馈该插件目前处于测试阶段,并且已开发了最少的功能集。 我们欢迎您在这些早期阶段提出任何反馈意见。 预计将于2015年6...
JUnit Platform Maven插件 Maven插件启动JUnit平台 特征 利用JUnit Platform的本机执行多个TestEngine的能力。 在测试运行时自动加载众所周知的引擎实现:用户仅需依赖junit-jupiter-api即可提供Jupiter ...
Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个...
Twirl Maven插件一个Maven插件,可将编译为Scala源文件。 Twirl使您可以在Scala中编写类型安全的已编译模板: // Hello.scala.html@ ( name : String )< h1> Hello , @ name ! </ h1> 然后在代码中呈现: ...
ESH常量生成器Maven插件什么? 该插件会生成Java常量类,并在ESH_INF文件夹文件中定义所有命名。为什么? 如果内容很多,因为很难自己编写此类。 此外,XML文件应处于领先地位,并且您的代码库始终保持同步。如何? ...
[INFO] Compiling 1 source file to F:\217my_optLogs\001系统相关\系统设计\007\CookBook\mvn
本书分成了三个部分:介绍性内容,第 I 部分 “Maven实战” ,和第 II 部分 “Maven参考”。介绍性内容包括了两章:第 1 章介绍 Apache Maven和第 2 章安 装和运行Maven。...一些例子和表格解释如何编写插件。
Maven插件可转换haxe源并将其输出以供以后使用。 通常在复杂的项目中插入Haxe会很好。 JavaScript就是一个很好的例子。 使用Haxe替代JavaScript是编写更清晰(类型安全)代码的好方法。 但是,最好不建议将这些...