博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Maven 插件
阅读量:6293 次
发布时间:2019-06-22

本文共 3015 字,大约阅读时间需要 10 分钟。

Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成。

Maven 有以下三个标准的生命周期:

  • clean:项目清理的处理
  • default(或 build):项目部署的处理
  • site:项目站点文档创建的处理

每个生命周期中都包含着一系列的阶段(phase)。这些 phase 就相当于 Maven 提供的统一的接口,然后这些 phase 的实现由 Maven 的插件来完成。 认识上述Maven插件的基本概念能帮助你理解Maven的工作机制,不过要想更高效率地使用Maven,了解一些常用的插件还是很有必要的,这可以帮助你避免一不小心重新发明轮子。多年来Maven社区积累了大量的经验,并随之形成了一个成熟的插件生态圈。

Maven官方有两个插件列表:

我们在输入 mvn 命令的时候 比如 mvn cleanclean 对应的就是 Clean 生命周期中的 clean 阶段。但是 clean 的具体操作是由 maven-clean-plugin 来实现的。

所以说 Maven 生命周期的每一个阶段的具体实现都是由 Maven 插件实现的。

Maven 实际上是一个依赖插件执行的框架,每个任务实际上是由插件完成。Maven 插件通常被用来:

  • 创建 jar 文件
  • 创建 war 文件
  • 编译代码文件
  • 代码单元测试
  • 创建工程文档
  • 创建工程报告 插件通常提供了一个目标的集合,并且可以使用下面的语法执行:
mvn [plugin-name]:[goal-name]复制代码

例如,一个 Java 工程可以使用 maven-compiler-plugincompile-goal 编译,使用以下命令:

mvn compiler:compile复制代码

Maven 提供了下面两种类型的插件:

类型 描述
Build plugins 在构建时执行,并在 pom.xml 的 元素中配置。
Reporting plugins 在网站生成过程中执行,并在 pom.xml 的 元素中配置。

下面是一些常用插件的列表:

插件 描述
clean 构建之后清理目标文件。删除目标目录。
compiler 编译 Java 源文件。
surefile 运行 JUnit 单元测试。创建测试报告。
jar 从当前工程中构建 JAR 文件。
war 从当前工程中构建 WAR 文件。
javadoc 为工程生成 Javadoc。
antrun 从构建过程的任意一个阶段中运行一个 ant 任务的集合。

除了这些核心插件之外,还有很多优秀的第三方插件,可以帮助我们快捷、方便的构架项目。当使用到某些功能或者特性的时候多加搜索,往往得到让你惊喜的效果。 例如,项目中使用了Mybatis,就有一款神奇的maven插件,运行一个命令,就可以根据数据库的表,自动生成Mybatismapper配置文件以及DAO层接口模板。 在pom.xml中添加plugin

org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
src/main/resources/mybatis-generator/generatorConfig.xml
true
true
Generate MyBatis Artifacts
generate
org.mybatis.generator
mybatis-generator-core
1.3.2
复制代码

定义generatorConfig.xml

复制代码

转载地址:http://estta.baihongyu.com/

你可能感兴趣的文章
2016年云巴产品更新合集
查看>>
央视在世界杯高清直播中占了C位 它是怎么做到的?
查看>>
新书问答:Company-Wide Agility
查看>>
Oracle将关闭Java.net和Kenai.com社区
查看>>
机器人操作系统来到Windows
查看>>
Propel项目改为基于TensorFlow.js
查看>>
Azure正式对外发布容器服务,支持Swarm和Mesos
查看>>
阿里巴巴收购以色列VR公司,大厂死磕VR为哪般?
查看>>
埃隆·马斯克:比特币拥有着“极为出色”的结构,而纸质货币终将消失
查看>>
如何用度量影响敏捷环境
查看>>
Facebook使用机器学习手段来自动优化其系统性能
查看>>
借助Unity AR Foundation构建跨平台AR应用
查看>>
Kubernetes 落地案例|使用 Kubernetes 重新部署全球最大的教育公司
查看>>
手工测试对比自动化测试
查看>>
vue.js快速入门
查看>>
浅论服务端应用程序开发中的CAP思想(非分布式系统中的CAP理论)
查看>>
socket.io的 Python客户端中文encode问题
查看>>
[LintCode] Shape Factory
查看>>
html5手机页面的那些meta
查看>>
最长回文子串问题
查看>>