Maven常用插件配置和使用
为什么80%的码农都做不了架构师?>>>
主要介绍Maven的几个常见第三方插件(cobertura、findbugs、source、assembly、插件开发)配置和使用,接Maven介绍
maven本质上是一个插件框架,它的所有工作都交给插件来做,每个插件可以有多个goal。
除了自带的插件之外还有很多比较成熟的第三方插件,我们也很容易上手进行简单的插件开发,下面一一介绍
1 自带插件
maven自带的核心插件为Build plugins和Reporting plugins。
mvn compile编译源码实际上就利用到了maven-compiler-plugin,其他phase也类似用到了相应的插件
关于maven自带的核心插件见:http://maven.apache.org/plugins/index.html
2 第三方插件
2.1 maven有很多成熟的第三方插件
如jetty 对于web开发使用jetty作为容器
native 编译c和c++代码
sql 执行sql脚本
其他更多见:http://maven.apache.org/plugins/index.html#Outside_The_Maven_Land
下面具体介绍下单元测试覆盖率插件cobertura、findbugs
2.2 maven2的cobertura插件
2.2.1 cobertura
cobertura是一款用来计算java代码测试覆盖率的工具,基于jcoverage。能计算每个类、包、整个工程的行覆盖率和分支覆盖率以及代码复杂度(Cyclomatic complexity)并生成html或xml形式的报告,让用户很方便的查看代码的单元测试覆盖率情况。cobertura的原理是通过对class文件进行插桩然后计算。
2.2.2 maven2的cobertura插件介绍
插件地址为http://mojo.codehaus.org/cobertura-maven-plugin/index.html
a、首先在pom中添加配置如下
1
2
3
4
5
6
7
8
9
|
<reporting>
<outputDirectory> target / site < / outputDirectory >
<plugins>
<plugin>
<groupId> org . codehaus . mojo < / groupId >
<artifactId> cobertura - maven - plugin < / artifactId >
< / plugin >
< / plugins >
< / reporting >
|
b、运行goal
到项目根目录下运行mvn cobertura:cobertura 将会插桩class文件、测试、生成覆盖率报告
cobertura支持的goal如下:
cobertura:check Check the Last Instrumentation Results.
cobertura:clean Clean up rogue files that cobertura maven plugin is tracking.
cobertura:dump-datafile Cobertura Datafile Dump Mojo.
cobertura:instrument Instrument the compiled classes.
cobertura:cobertura Instruments, Tests, and Generates a Cobertura Report.
c、在target\site\cobertura目录下生成报告文件,打开index.html可以查看具体报告
mvn cobertura:cobertura执行前会执行test phase,即执行单侧代码
2.3 maven2的findbugs插件
2.3.1 findbugs
是静态检查java代码的工具,根据一些bugs的表达式检查代码中的bugs,可以自定义检查规则
2.3.2 maven2的findbugs插件介绍
插件地址为http://mojo.codehaus.org/findbugs-maven-plugin/index.html
a、首先在pom中添加配置如下
不同goal的配置略有不同,可自己调整,以下介绍的是mvn findbugs:findbugs的配置
1
2
3
4
5
6
7
8
9
|
<reporting>
<plugins>
<plugin>
<groupId> org . codehaus . mojo < / groupId >
<artifactId> findbugs - maven - plugin < / artifactId >
<version> 2.3.1 < / version >
< / plugin >
< / plugins >
< / reporting >
|
b、运行goal
到项目根目录下运行mvn findbugs:findbugs将会开始检查,并生成bugs报告
findbugs支持的goal如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
findbugs :check
Fail the build if there were any FindBugs violations in the source code . An
XML report is put out by default in the target directory with the errors . To
see more documentation about FindBugs' options , please see the FindBugs
Manual . .
findbugs :findbugs
Generates a FindBugs Report when the site plugin is run . The HTML report is
generated for site commands only .
findbugs :gui
Launch the Findbugs GUI . It will use all the parameters in the POM fle .
findbugs :help
Display help information on findbugs -maven -plugin .
Call
mvn findbugs :help -Ddetail =true -Dgoal = <goal-name>
to display parameter details .
|
c、在target\site\findbugs目录下生成报告文件,打开index.html可以查看具体报告
mvn findbugs:findbugs绑定到了compile phase,即在编译时自动检查
2.4 maven的source插件
2.4.1 source
用来将工程打包成带源代码的jar包
2.4.2 pom配置如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<build>
<plugins>
<plugin>
<groupId> org . apache . maven . plugins < / groupId >
<artifactId> maven - source - plugin < / artifactId >
<version> 2.1.2 < / version >
<executions>
<execution>
<id> attach - sources < / id >
<phase> verify < / phase >
<goals>
<goal> jar - no - fork < / goal >
< / goals >
< / execution >
< / executions >
< / plugin >
< / plugins >
< / build >
|
直接运行mvn clean install会在target下打出两个包,带***-sources.jar的为源码包
2.5 maven的assembly插件
2.5.1 assembly
可用来将工程依赖的jar包和工程都打成一个jar打包
2.5.2 pom配置如下
1
2
3
4
5
6
7
8
9
10
11
12
|
<build>
<plugins>
<plugin>
<artifactId> maven-assembly-plugin </artifactId>
<configuration>
<descriptorRefs>
<descriptorRef> jar-with-dependencies </descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
|
直接运行mvn assembly:assembly会在target下出现***-with-dependencies.jar的jar包
2.6 插件开发
maven的插件开发相当简单,可以参考http://trinea.iteye.com/blog/1171957
转载于:https://my.oschina.net/leyou/blog/468104
Maven常用插件配置和使用相关推荐
- maven常用插件配置
常用插件配置详解 Java代码 <!-- 全局属性配置 --> <properties> <project.build.name>tools</proj ...
- Maven 配置文件 POM 的常用插件配置代码
Maven 配置文件 POM 的常用插件配置代码 普通 将 Maven 多模块依赖集成打进一个 JAR 包(方法 1) 将 Maven 多模块依赖集成打进一个 JAR 包(方法 2) 生成单入口类 J ...
- maven 常用插件3
maven 常用插件3 转载:http://www.cnblogs.com/dennyzhangdd/p/5831112.html 1.根据项目类型打包:jar/war打包插件. 首先看<pac ...
- maven常用插件详解
1. 简介 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说, ...
- maven配置testng_TestNG Maven Surefire插件配置
maven配置testng TestNG Maven surefire plugin configurations let us define which tests to execute when ...
- Maven常用插件介绍及如何打一个瘦jar包
目录 零:说在前面 一:常用插件的介绍 二:常用插件的对比 三:打一个瘦jar包 3.1:背景 3.2:解决方案 四:插件应用举例 4.1:maven-jar-plugin 举例及部分说明 4.2:m ...
- 【Linux vim 入门及渐进过程2 - vim 常用插件配置】
文章目录 1.1 vim 常用配置 1.1.2 vim 别名 alias 配置 1.1.3 vim 终端颜色配置 1.1.3 vim cscope 函数配置 1.1.4 vimrc 配置 1.2 vi ...
- maven工程插件配置
1 <build> 2 <!-- 该级工程会加载插件,放在父工程里 --> 3 <plugins> 4 <!-- 资源文件拷贝插件 --> 5 < ...
- maven常用插件功能
maven-dependency-plugin http://maven.apache.org/plugins/maven-dependency-plugin/ maven-dependency-pl ...
- Maven学习总结(22)——Maven常用插件介绍
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...
最新文章
- 神经网络的可解释性综述
- 数学史上的哲学绝唱——无穷观与数学基础的争论
- 中英字体不同导致的下划线不对齐问题
- mysql 返回的查询结果为空 (即零行)._Mysql数据同步(单向)
- Python_48re模块的sub方法
- 5 ui自适应窗口_Qt编写地图综合应用5-自适应拉伸
- HTTP之Redirect和Location头使用(C++ Qt框架实现)
- DEV、SIT、UAT、PRD的意思
- oracle同音模糊查询
- MySQL Gtid_executed和Gtid_purged修改时机
- C语言随机数独教程,C语言数独游戏的求解方法
- 拼多多狂砸百亿补贴的iphone是真的吗?
- 麻省理工学院——人工智能公开课06
- 10个问题说清楚 什么是元宇宙 - 十问元宇宙:如何将抽象的概念具象化?
- [每天一个知识点]12-Maven怎么读
- Java 实现图片转换为ICO以及多种格式图片之间转换
- 美团网2014校招笔试题及解答(长沙站+哈尔滨站)
- DbVisualizer破解
- 【计算机网络】传输层(一)—— 传输层概述
- 16、爬取知乎大v张佳玮的文章“标题”、“摘要”、“链接”,并存储到本地文件...
热门文章
- 【Matlab学习笔记】【编程实例】一(将两幅图像调整为相同的尺寸大小)
- 批量将xls转换成xlsx
- 激光雷达点云数据处理一(Terrasolid软件安装)
- ArcGISEngine二次开发(5):添加矢量要素
- php基础教程 第五章,php基础教程——5数据库总结_PHP教程
- python 加减法 负数_python解决两位数加减法快速出题问题
- java 访问https 证书_Java+SSL证书访问Https站点
- 如何分析及处理 Flink 反压?
- Android自动化测试【初级篇】-- Monkey测试
- 公司规定所有接口都用 POST请求,看不起 get ?这是为什么?