Maven常用插件配置和使用

主要介绍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中添加配置如下

Java





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的配置

Java





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如下:

XHTML





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

findbugs:check

FailthebuildiftherewereanyFindBugsviolationsinthesourcecode.An

XMLreportisputoutbydefaultinthetargetdirectorywiththeerrors.To

seemoredocumentationaboutFindBugs‘options,pleaseseetheFindBugs

Manual..

findbugs:findbugs

GeneratesaFindBugsReportwhenthesitepluginisrun.TheHTMLreportis

generatedforsitecommandsonly.

findbugs:gui

LaunchtheFindbugsGUI.ItwillusealltheparametersinthePOMfle.

findbugs:help

Displayhelpinformationonfindbugs-maven-plugin.

Call

mvnfindbugs:help-Ddetail=true-Dgoal=<goal-name>

todisplayparameterdetails.

c、在target\site\findbugs目录下生成报告文件,打开index.html可以查看具体报告
mvn
findbugs:findbugs绑定到了compile phase,即在编译时自动检查

2.4 maven的source插件
2.4.1 source

用来将工程打包成带源代码的jar包
2.4.2 pom配置如下

Java





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配置如下

XHTML





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

转载自:http://www.trinea.cn/android/maven-plugin/

Maven常用插件配置和使用,布布扣,bubuko.com

时间: 2024-10-25 22:52:59

Maven常用插件配置和使用的相关文章

maven常用插件配置详解

常用插件配置详解Java代码    <!-- 全局属性配置 --> <properties> <project.build.name>tools</project.build.name> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> project.build.name:  用来定义war包名称  proje

maven常用插件配置

1.maven-jar-plugin插件<build> <plugins> <!-- 排除资源文件中的properties文件,不需要打到jar中,后面通过assembly插件打包到conf目录中 --> <plugin> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>**/*.proper

maven常用插件pom配置

一.问题描述: 部署一个maven打包项目时,jar包,依赖lib包全部手动上传至服务器,然后用maven部署报错:Exception in thread "main" java.lang.NoClassDefFoundError:,当时心想可能是依赖的lib包有问题,各种重新部署(以为是依赖的包没有更新),确忽略了一个大问题:pom.xml没仔细检查.解决方法:最终发现<plugin>                <groupId>org.apache.ma

Maven常用插件--转

=========Maven Report Plugin========= 1.源码分析 Java代码   <artifactId>maven-pmd-plugin</artifactId> 2.代码格式检查 Java代码   <artifactId>maven-checkstyle-plugin</artifactId> 3.代码相似度检查 Java代码   <groupId>org.codehaus.mojo</groupId>

Maven之——插件配置与解析

Maven之--插件配置与解析 插件配置就是为绑定插件指定其预定义的参数值.来进一步调整插件目标所执行的任务.可以通过命令行和POM中插件全局配置的形式来配置.不是所有的插件配置都可以通过命令行配置的. 1.    命令行插件配置 如maven-surefire-plugin插件提供一个maven.test.skip参数.当值为true时会跳过执行测试.命令行执行方式: mvninstall –Dmaven.test.skip=true mvn install 可以对比两者在控制台的输出就发现.

Maven tomcat插件配置及使用

pom.xml配置 <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>tomcat-maven-plugin</artifactId> <version>1.1</version> <configuration> <path>/cxx</path> <por

Maven常用插件的使用Case

Maven是Java工程常用的项目管理工具,通过Maven可以管理项目的各个生命周期.Maven本质是一个插件框架,本身并不执行任何构建任务,所有的工作都是交给插件来完成的.熟练使用Maven插件,可以让我们的开发工作事半功倍,下面列出的都是我平时工作中常用插件的使用case,不会涵盖所有配置,但已使我现在的工作足够流畅. 一.maven-compiler-plugin maven-compiler-plugin的compiler目标(goal)与编译生命周期阶段绑定.需要指定编译的jdk版本和

MAVEN学习(六)--maven常用插件

我们使用maven做一些日常的工作开发的时候,无非是想利用这个工具带来的一些便利.比如它带来的依赖管理,方便我们打包和部署运行.这里几个常见的插件就是和这些工程中常用的步骤相关. maven-compile-plugin 这个插件就如同名字所显示的这样,用来编译源代码的.最开始碰到这个插件是在于有的时候我们下载了一些工程需要编译的时候,比如我们输入命令:mvn install ,但是系统编译的时候报错了,错误的信息如下: [ERROR] Failed to execute goal org.ap

Maven的发布常用插件配置

<build> <plugins> <plugin> <!-- 编译插件 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.