`

maven常用插件配置和使用

 
阅读更多

最新内容见:Maven常用插件配置和使用

 

本文主要是介绍maven的几个常见第三方插件(cobertura、findbugs、source、assembly、插件开发)配置和使用,接http://trinea.iteye.com/blog/1290898

 

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是一款用来计算java代码测试覆盖率的工具,基于jcoverage。能计算每个类、包、整个工程的行覆盖率和分支覆盖率以及代码复杂度(Cyclomatic complexity)并生成html或xml形式的报告,让用户很方便的查看代码的单元测试覆盖率情况。cobertura的原理是通过对class文件进行插桩然后计算。

 

2.2.2 maven2的cobertura插件介绍

插件地址为http://mojo.codehaus.org/cobertura-maven-plugin/index.html

a、首先在pom中添加配置如下

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

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

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

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,即在编译时自动检查

http://qa.taobao.com/?p=4206

 

2.4 maven的source插件

2.4.1 source插件用来将工程打包成带源代码的jar包

2.4.2 maven2的source插件介绍

<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 maven2的assembly插件pom配置如下

<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

 

分享到:
评论
3 楼 Trinea 2012-08-21  
alask2011 写道
望你能回答我,小弟不解

可能是父项目已经配置过或是其他插件包含了
2 楼 alask2011 2012-08-20  
望你能回答我,小弟不解
1 楼 alask2011 2012-08-20  
请问我没有在xml里配置插件,却可以使用插件的命令cobertura:cobertura ,这个怎么解释啊??

相关推荐

    nnzbz#notes#maven常用插件1

    1.1. 参考配置 1.3. 版本范围规则 1.4. 扩展插件 2.1. 项目满足条件 2.2. 命令行运行 2.2.1. 更新全部子项目的版本号 2.2.2.

    apache-maven-3.9.5-bin windows 64bit x86下载

    1、构建管理:Maven使用一个中央的配置文件(pom.xml)来定义项目的结构、依赖关系和构建脚本。通过定义项目的依赖关系,Maven能够自动下载、管理和构建这些依赖。 2、依赖管理:Maven能够自动解决项目的依赖关系,...

    Maven配置文档

    了 Maven的安装、配置和基本使用方法,以便于初学者参考;详细讲解了坐标和依赖、Maven仓库、生命周期和 插件、聚合与继承等 Maven的核心概念,建议所有读者仔细阅读;系统性地阐述了使用 Nexus建立私服、使用 Maven...

    Maven实战.pdf

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    Maven实战 许晓斌 著

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    《Maven实战》

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    maven使用详解

    1、 maven技术简介 2、 maven快速入门 (安装配置、 常用命令) 3、 在Eclipse基于(插件)maven构建项目 4、 maven配置详解 (难点) 案例:将仓库管理系统,重构maven结构

    Windows下配置好的apache-maven-3.9.2

    Maven使用一种被称为"项目对象模型"(Project Object Model,POM)的配置文件来描述项目的结构和依赖关系。在POM中,您可以定义项目的基本信息、依赖项、插件和构建配置等。 Maven提供了一组标准的生命周期和插件,...

    Maven实战 高清版pdf

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    Maven实战 高清版

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    maven 教程

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    maven项目中pom.xml配置文件

    maven项目中pom.xml配置文件,包含常用的mybatis,log4j,jdk,mysql连接等依赖

    版本管理及项目构建和maven的介绍使用

    1.svn版本管理。 2.项目构建的方式,主要介绍Ant和maven,...包含Ant的简介及常用任务,maven的简介、环境配置、maven项目开发,maven依赖、maven仓库等概念以及maven生命周期和maven插件、聚合和继承等。 3.推荐的书籍

    Maven2 的新特性.7z

    在Maven2中,配置使用settings.xml,它取代了原有的project.properties和build.properties。配置在Maven2中存在两种级别: • 用户级,针对操作系统登录用户而言。一般在$home/.m2/,对于windows用户,就是目录:C:\...

    Jenkins从环境配置到项目开发视频教程

    2. Jenkins安装和插件安装 3. Jenkins权限管理 4. Jenkins凭证管理 5. Jenkins+Maven配置 章节三:Jenkins+Web项目持续集成 1. Jenkins创建流水线项目 2. Jenkins流水线脚本语法 3. 常用的Jenkins构建触发器 4. ...

    mybatis-generator-yml-maven-plugin:MyBatis Generator yml配置,lombok插件,swagger插件支持

    支持方便地配置常用插件,例如注释生成,Lombok,招摇等。 介绍使用某些配置或插件的好处 尝试找到适合不同情况的最佳配置 内容 环境要求 确保已安装Java8和IDE(例如Intellij Idea和Eclipse) 项目中使用了Maven ...

    crowd-maven-plugin:一个Maven插件,用于与Crowdin同步翻译

    这个Maven插件使用Crowdin API在本地项目和Crowdin之间同步翻译文件。 它最初基于,但此后已被完全重写。 由于Git分支已转换为Crowdin分支,因此Maven项目必须位于Git存储库中。 目录 1.配置 该插件需要配置以知道...

    Maven学习精华教程-电子书

    此文件为exe格式电子书,无需安装任何阅读软件就可以打开,由mybase笔记软件生成。 此电子书详细介绍了项目自动化构建工具Maven的使用,内容清晰简洁明了,易于...插件_常用插件列表 仓库_概念与配置 仓库_私服_Nexus

Global site tag (gtag.js) - Google Analytics