Maven常用插件
来源:互联网 发布:自己的域名 编辑:程序博客网 时间:2024/06/08 08:06
一、Maven插件是什么?
Maven是一个执行插件的框架,每一个任务实际上是由插件完成的。比如我们的编译操作就是通过compiler插件来实现的。
二、Maven插件的几个核心概念
1、目标(Goals)
一个插件通常提供了一组目标,一个目标是一个明确的任务,它可以作为单独的目标运行,或者作为一个大的构建的一部分和其它目标一起运行。
mvn [plugin-name]:[goal-name]mvn compiler:compile
目标的例子包括Compiler插件中的compile目标,它用来编译项目中的所有源文件,或者Surefire插件中的test目标,用来运行单元测试。
mvn package:命令行并没有指定一个插件目标,而是指定了一个Maven生命周期阶段。
一个阶段(Phases)是在被Maven称为“构建生命周期”中的一个步骤。生命周期是包含在一个项目构建中的一系列有序的阶段。
下图展示了默认Maven生命周期的简单样子:
插件目标可以附着在生命周期阶段上。随着Maven沿着生命周期的阶段移动,它会执行附着在特定阶段上的目标。每个阶段可能绑定了零个或者多个目标。在之前的小节里,当你运行mvn package,你可能已经注意到了不止一个目标被执行了。检查运行mvnpackage之后的输出,会注意到那些被运行的各种目标。当这个简单例子到达package阶段的时候,它运行了Jar插件的jar目标。既然我们的简单的quickstart项目(默认)是jar包类型,jar:jar目标被就绑定到了打包阶段。
Maven执行一个阶段的时候,它首先会有序的执行前面的所有阶段,到命令行指定的那个阶段为止。
每个阶段对应了零个或者多个目标。
当Maven经过以package为结尾的默认生命周期的时候,下面的目标按顺序被执行:
resources:resources
Resources插件的resources目标绑定到了resources阶段。这个目标复制src/main/resources下的所有资源和其它任何配置的资源目录,到输出目录。
compiler:compile
Compiler插件的compile目标绑定到了compile阶段。这个目标编译src/main/java下的所有源代码和其他任何配置的资源目录,到输出目录。
resources:testResourcesResources插件的testResources目标绑定到了test-resources阶段。这个目标复制src/test/resources下的所有资源和其它任何的配置的测试资源目录,到测试输出目录。
compiler:testCompile
Compiler插件的testCompile目标绑定到了test-compile阶段。这个目标编译src/test/java下的测试用例和其它任何的配置的测试资源目录,到测试输出目录。
surefire:test
Surefire插件的test目标绑定到了test阶段。这个目标运行所有的测试并且创建那些捕捉详细测试结果的输出文件。默认情况下,如果有测试失败,这个目标会终止。
jar:jar
Jar插件的jar目标绑定到了package阶段。这个目标把输出目录打包成JAR文件。
被绑定的目标随着它们阶段的运行而运行,如下图:
这是 Maven 主要的生命周期,用于构建应用程序。它有以下 23 个阶段。
groupId:artifactId:packaging:version
e.g. mavenbook:my-app:jar:1.0-SNAPSHOT
groupId 以创建这个项目的组织名称的逆向域名(reverse domain name)开头
artifactId 在groupId下的表示一个单独项目的唯一标识符
主要的maven插件都来自于Apache和CodeHaushttp://maven.apache.org/plugins/index.htmlhttp://mojo.codehaus.org/plugins.html
三、来自于CodeHaus的插件
四、来自于Apache的插件
参考书籍:Maven权威指南
- 常用Maven插件介绍
- Maven常用插件
- Maven常用插件集合
- Maven常用插件列表
- 常用Maven插件介绍
- Maven常用插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- 常用Maven插件介绍
- maven常用插件
- Maven常用插件
- Maven常用插件作用
- 常用Maven插件
- 常用Maven插件介绍
- maven 常用插件
- js表达式中的类型转换
- 嵌入式中使用设计模式(1)--工厂模式
- 英语六级之完形填空
- Spring框架-第四弹
- MVC设计模式
- Maven常用插件
- 生活日记2
- STL set
- [矩阵快速幂优化DP]BZOJ 4037——Str
- 02Redis数据类型之String 和Hash
- Factorization Machines 学习笔记(一)预测任务(转)
- 常见前端Js框架汇总
- KMP-字符串匹配
- vue项目开发中better-scroll在移动端开发案例