`

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 ,这个怎么解释啊??

相关推荐

    IDEA插件推荐之Maven-Helper的教程图解

    4. 安装和配置:Maven-Helper 插件的安装和配置非常简单。开发者只需要在 IDEA 插件市场中搜索 Maven Helper,然后安装并重启 IDEA 就可以开始使用。需要注意的是,在国内网络连接 JetBrains 服务器可能会比较慢,...

    Maven常用插件整理.docx

    在Java开发领域,Maven是广泛使用的构建工具,它...综上所述,Maven的插件系统极大地增强了其灵活性和实用性,使得开发者能够根据项目需求自定义构建过程。正确配置和使用这些插件,能够确保项目构建高效且符合预期。

    maven仓库插件

    在`pom.xml`文件中,我们可以通过`&lt;build&gt;`标签下的`&lt;plugins&gt;`部分来配置和使用Maven插件。例如,为了配置Maven仓库插件,我们需要指定插件的groupId、artifactId、version以及可能的执行目标和参数。 ```xml ...

    Maven学习必要插件

    在本文中,我们将深入探讨Maven的核心功能、常用插件以及如何配置和使用这些插件。 1. **Maven核心功能** Maven通过Project Object Model (POM)来描述项目,POM是一个XML文件,包含了项目的配置信息,如依赖、构建...

    maven 自定义插件小示例

    通过以上步骤,你可以根据项目需求定制自己的Maven插件,增强Maven的灵活性和实用性。在实际开发中,自定义插件可以帮助解决特定场景下的问题,提高开发效率。对于熟悉Maven的开发者来说,掌握自定义插件的创建和...

    IDEA配置使用Maven Helper插件的方法(详细配置)

    "IDEA配置使用Maven Helper插件的方法" IDEA作为一款功能强大的集成开发环境,提供了多种插件来提高开发效率。Maven Helper插件是其中之一,旨在帮助开发者更好地使用Maven项目。下面将详细介绍IDEA配置使用Maven ...

    maven插件及其使用方法

    一个基本的插件配置如下: ```xml &lt;groupId&gt;com.example&lt;/groupId&gt; &lt;artifactId&gt;example-plugin &lt;version&gt;1.0.0 &lt;id&gt;custom-goal &lt;phase&gt;package &lt;goal&gt;custom-goal &lt;!-- 配置参数 --&gt; ...

    maven插件压缩包

    在没有互联网的情况下,安装和使用 Maven 插件可能会变得困难,因为通常我们都是通过 Maven 中央仓库下载所需的插件。离线 Maven 插件压缩包则提供了本地化解决方案,它包含了一组预打包的插件,可以直接在本地环境...

    eclipse安装maven插件

    在IT行业中,Maven是一个广泛使用的项目管理和综合工具,它主要负责构建、依赖管理和项目信息管理。Eclipse作为流行的Java集成开发环境(IDE),通过安装Maven插件,可以让开发者在Eclipse内部方便地进行Maven项目的...

    Myeclipse6.5的Maven插件

    4. **配置管理**:Maven的`pom.xml`文件是项目的核心配置文件,插件提供图形化的界面,方便编辑和管理`pom.xml`,包括添加、删除和管理依赖,设置插件配置等。 5. **版本控制**:Maven插件支持与Git、SVN等版本控制...

    Maven Tomcat 插件

    ### Maven Tomcat 插件详解 #### 一、引言 在现代软件开发过程中,持续集成与部署(CI/CD)已成为提升开发效率的关键技术之一。...此外,插件还支持多种部署选项,如热部署等,进一步增强了其灵活性和实用性。

    李兴华maven配置与使用

    Maven默认使用中央仓库,但也可以配置使用阿里云、公司内部仓库等。通过`settings.xml`中的`mirror`元素,可以设置优先访问的镜像。 9. **Maven的 profiles** profiles允许在不同的环境(如开发、测试、生产)下...

    maven逆向工程和分页插件

    首先,你需要在项目的pom.xml文件中添加MyBatis Generator的依赖和插件配置,配置包括数据库连接信息、生成的文件路径、以及需要逆向的表名等。一旦配置完成,运行Maven的generate目标,插件就会根据配置自动生成...

    m2maven是maven管理插件

    **m2maven:Maven管理插件详解** 在软件开发过程中,依赖管理和构建工具有着至关重要的作用,它们能够帮助开发者...无论是对新手还是经验丰富的开发者来说,m2maven都是一个非常实用的工具,值得在日常开发中使用。

    maven离线插件

    Maven是Java开发中广泛使用...总的来说,"maven离线插件"对于那些在网络受限的环境中工作的Java开发者来说,是一个非常实用的工具,它使得Maven的构建功能能在无网或低网速环境下正常运行,提高了开发的灵活性和效率。

    maven helper插件

    7. **运行/调试配置**:插件还支持自定义运行和调试配置,允许开发者针对特定的Maven目标执行或调试,提高了工作效率。 8. **兼容性与集成**:maven helper插件无缝集成于IntelliJ IDEA,无需额外安装,且兼容各种...

    maven helper idea 插件

    它提供了多种实用功能,帮助开发者更高效地处理Maven依赖关系,排查冲突,以及更好地理解和操作POM.xml配置文件。以下将详细介绍该插件的主要功能和使用方法。 1. **依赖分析**:Maven Helper的核心功能之一是提供...

    maven及eclipse插件下载和使用.zip

    通过了解和掌握Maven的使用,以及如何在Eclipse中集成Maven插件,开发者可以更加专注于编写代码,而不是处理构建问题。因此,对于Java开发者来说,学习和熟练运用Maven及其Eclipse插件是十分必要的。

    Apache Maven插件

    Apache Maven 插件是Java开发领域中不可或缺的一部分,它是由Apache软件基金会提供的一个项目管理和集成工具。Maven通过使用一种标准化的项目...通过熟练掌握Maven插件的使用,可以大大提高开发效率和项目的可维护性。

Global site tag (gtag.js) - Google Analytics