Terry.Li-彬

虚其心,可解天下之问;专其心,可治天下之学;静其心,可悟天下之理;恒其心,可成天下之业。

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  143 随笔 :: 344 文章 :: 130 评论 :: 0 Trackbacks
节选自O'Reilly出版的<<开发人员的笔记本:Maven>>
作者:帝默西 M.奥波莱恩,文森特.马索尔。
翻译:phynalica
如有问题,或发现错误及不妥之处,请联系笔者:saluteDragon@Gmail.com

使用Eclipse的Maven插件
Eclipse有一个很不错的Maven插件。这个插件支持很多有趣的特性,如编辑project.xml文件的功能、支持对Maven进行定制以及一个Maven库浏览器(Repository Browser)等。

步骤
        Mevenide(http://mevenide.codehaus.org/mevenide-ui-eclipse/update/index.html)是一个Eclipse插件,有了它,你就可以在Eclipse中使用Maven了。你可以按照以下的说明到Eclipse的更新网站上去下载这个插件。
1.        启动Eclipse。
2.        从菜单栏上选择帮助(Help)?软件更新(Software Updates)?找到并安装(Find and Install)。
3.        在“安装/更新(Install/Update)”对话框上,选择“Search for new feature to install”,然后单击“下一步”。
4.        在“安装(Intall)”对话框上,单击“新建远程站点(New Remote Site)”。
5.        在“新的更新站点”对话框上,在“名称”字段中输入Mevenide,在“URL”字段中,输入Eclipse更新站点的位置。Mevenide的Eclipse更新站点是:http://mevenide.codehaus.org/release/eclipse/update/site.xml。
6.        当Mevenide这个单词出现在“安装”对话框中时,选中两个子项:Maven和Mevenide,然后单击“下一步”。
7.        Maven和Mevenide下载完毕并安装后,重新启动Eclipse。
你首先会注意到,Mevenide把一个绿色图标作为每个project.xml文件的标记。你可以在项目对象模型编辑器中打开project.xml文件,方法是:用鼠标选中任意project.xml文件,单击右键,选择“打开方式(Open With…)”?“项目对象模型编辑器(Project Object Model Editor”。这个编辑器将显示如图1-3中所示的面板。
        
image
图1-3 Mevenide的项目对象模型编辑器。

Mevenide提供了一系列标签,这些标签可以让你在Eclipse中编辑一个project.xml文件的不同部分。只要你对project.xml文件的语法有足够的了解,你应该能看出来,Mevenide的项目对象模型编辑器提供了一个GUI界面来维护这个XML文件。如果你仍然想直接编辑这个XML文件,你可以选择最右边的“Source”标签。
除了POM编辑器,Mevenide还提供了在Eclipse中执行Maven命令的方法,这种方法使用Eclipse外部工具。要达到这个目的,请选择“运行(Run)”?“外部工具(External Tools)”?“外部工具(External Tools)”。然后,你可以创建一个Maven配置,并从可用命令列表中选择想要执行的命令。如果在Eclipse中执行了一个Maven命令,它的输出将会出现在“控制台”视图中。
Mevenide的另一个有趣的功能是Maven库浏览器(Repository Browser)。有了这个工具,查看多个不同的远程库中的内容。要打开Maven库浏览器,请选择“窗口”?“显示…”?“其它…”,然后在弹出的对话框中,从文件夹“Maven”中选择“Maven库浏览器”。Maven库浏览器其实就是树形视图,列出了Maven库中的每个依赖项,如图Figure1-4,这幅图显示了HTTPClient组和abbot组的依赖项。

image
图1-4 Mevenide的Maven库浏览器

Mevenide还提供了搜索Maven库的功能,这个功能可以在Maven库中搜索特定的artifact。这个功能迟早会有用,因为在http://www.ibiblio.org/maven中搜索特定的依赖项是很费时间的。还是使用Mevenide把,这样会节省很多时间。

关于NetBeans和JBuilder
                当前版本的Mevenide提供对这两种IDE的支持。更多细节,请访问http://mevenide.codehaus.org/。
                关于IntelliJ,IDEA 插件有一些命令,你可以像使用Eclipse命令一样使用它们。更多信息请查看IDEA插件的在线文档:http://maven.apache.org/reference/plugins/idea/goals.html。

生成Ant的Build文件
        有时你可能想使用Apache Ant来进行编译。可能是因为你的项目正在使用一个依赖于Ant的自动过程,也可能是因为你的开发团队中有一些人不适应从Ant到Maven转变,还有一些队员希望继续使用Ant。很多IDE已经支持带有Ant build文件的项目,因此,你可以使用Maven生成build.xml文件,这样你的项目就可以使用Apache Ant来进行编译了。
步骤
        运行Ant插件。然后运行maven ant来创建一个build.xml文件,这个文件包含用来收集依赖项、编译和测试应用程序的target。以下是运行默认的jar target的输出:
C:\dev\mavenbook\code\genapp\test-application>ant
Buildfile: build.xml

init:
[mkdir] Created dir: C:\dev\mavenbook\code\genapp\target\lib

get-deps:
[get] Getting: http://www.ibiblio.org/maven/springframework/jars/
spring-core-1.1.4.jar
[get] Getting: http://www.ibiblio.org/maven/springframework/jars/
spring-web-1.1.4.jar

compile:
[copy] Copying 1 file to C:\dev\mavenbook\code\genapp\target\classes

junit-present:
[echo] = = = = = = ============ WARNING = = = == = = = = = = = = = = = = =
[echo] Junit isn't present in your ${ANT_HOME}/lib directory. Tests not
executed.
[echo] = = ==============================================

compile-tests:

internal-test:

test:

jar:
[jar] Building jar: C:\dev\mavenbook\code\genapp\test-application\
target\test-application-1.0.jar

BUILD SUCCESSFUL
Total time: 2 seconds


        你应该已经注意到了一个问题,它是一个例证的的问题。Apache Ant不会自动管理可选任务的依赖项。如果你想运行JUnit测试,必须得把junit-3.8.1.jar文件从本地Maven库中复制到${ANT_HOME}\lib目录。这个build文件包含一个get-deps tartget,这个target执行Ant的get(获取)任务,从http://www.ibiblio.org/maven获取了项目的所有依赖项。

总结
        ...想要远离Ant?Maven不能替代Ant?
                Yes 和 no。Ant还“不错”,多数工具仍然在使用它。Maven没有理由不提供对Apache Ant的互操作性,在第二章中,你会对Jelly有更多的了解,你会发现,Maven大量是用了Ant任务。很多项目使用了持续集成系统,这个系统需要一个Ant的build文件。运行maven ant使Maven继续支持这些工具。
        虽然变化很快,像Ant Hill和Gump等许多工具已经开始同时支持Ant和Maven。如果你仍然在使用需要Ant build文件的工具,请运行maven ant。

Ant 项目转化为Maven项目
        相当数量的项目都把Ant作为编译系统来使用。你可能想要转变到Maven。

步骤
                让我们从头开始。首先创建一个默认的Maven模板,然后把代码移动到合适的目录。别想让Maven接受原来的目录和编译路径。Maven不只是一个编译工具,它也是一种构思项目布局和项目管理的标准方法。如果你的项目包含了一个很复杂的build.xml文件,产生了很多不同的deliverables,那你就需要使你的项目“组件化”,并采用将在第三章中学习的多项目模型。你应该把项目的目录结构改变成本书中所提供的标准Maven项目的目录结构。
                如果你想再转变Ant,但是没有时间停止项目,你可以一直使用Maven来调用现有的Ant target。如果你真的转为使用Ant,你将会失去使用Maven带来的很多好处。获取更多信息,请查看详尽的在线文档“从Ant转变到Maven”(http://maven.apache.org/using/migrating.html)。

关于灵活性和选择
                灵活性和选择是原来的问题中的一部分。我们可以承诺,Maven将会改变处理项目编译和项目维护的方式,但是你应该按照Maven想要被使用的方式来使用它。Maven和Ant有什么不同之处呢?Ant以可重用任务的形式,提供了像copy、move、delete和junit等这样的编译块,Maven提供可重用的编译过程。Maven是一个“编译容器”,这个容器允许你在一系列项目中重用编译过程。下面就拿单元测试来举例说明。在Ant中,你要进行JUnit测试,就必须把如下内容包含在项目的build.xml文件中:
<junit printsummary="yes" haltonfailure="yes">
        <classpath>
<pathelement location="${build.tests}"/>
<pathelement path="${java.class.path}"/>
</classpath>

<formatter type="plain"/>

<test name="my.test.TestCase" haltonfailure="no" outfile="result">
<formatter type="xml"/>
</test>

<batchtest fork="yes" todir="${reports.tests}">
        <fileset dir="${src.tests}">
<include name="**/*Test*.java"/>
<exclude name="**/AllTests.java"/>
                        </fileset>
</batchtest>
</junit>

                这个片断忽略了不同路径和变量的定义,如build.tests和java.class.path,还忽略了Ant target的定义。除了某些单元测试target,你还需要定义一个target来编译源代码和单元测试,定义一个target来创建目标目录。每个项目都需要定义相同的逻辑来进行单元测试。多数Ant项目使用相似的目录结构,并通过把target定义复制到build.xml文件中来重用编译逻辑。随着时间的流逝,项目变得更复杂,可定制性更强,因而目录标准也要进化,每一个项目都可能不同的方法来进行编译、测试和打包;随着时间的流逝,build.xml文件本身也变成了一个项目。经过定制的Ant build文件越大,  编译过程中的平均信息量也会更大。.与其说Ant是一个编译工具,倒不如说它是提供了build-specific API的一种语言。Ant1.6已经有了Ant库和宏,但是Ant要实现像Maven中那样的全局重用性,还有很长的路要走。
                在Maven中,Test插件定义了所有项目共有的逻辑,这些项目需要编译和执行单元测试。
Test插件已经获得了编译和执行单元测试的最佳方法,并使这些方法可以在所有项目中可用。当你运行maven test命令时,Maven把信息从POM传递到Test插件,Test插件依赖于一个Java插件的Maven命令来进行编译。你没有在Maven中显式地告诉编译容器如何去执行一个JUnit测试。如果你有这么做,你就会遇到与Ant中相同的问题。正如你不会告诉一个Servlet容器如何取出打开WAR文件,并取出其中的文件,你也不会告诉Maven如何编译项目。Maven是一个编译容器,它提供了一个抽象层,这个抽象层把编译逻辑与项目分离。许多人一开始被Maven吸引是因为它提供了管理依赖项的功能,但Maven最大的好处是,它提供了一种横跨多个项目的标准的“开发基础设施”。 依赖项管理只是这个“开发基础设施”的一个副产品。
                                                                              
提示
Maven提供了一个开发基础设施和统一的项目布局,在本节结束的时候,你应该尝
试着让Maven来管理编译过程的多数细节。你应该使用Maven插件,并集中精力
编写程序,而不是花费宝贵的时间来编写编译脚本。

                
        接下来的章节将教你如何对Maven做一些小的修改以及如何定制Maven。但前提是,你没有把Maven当作另一个Ant。建立一个很大的工程,这个工程有一个很大的,用Jelly script编写的maven.xml,它相当于Ant的build.xml,这样的情况是很有可能的;如果你真的这么做了,你就错过了使用Maven所带来的好处。如果你发现在使用Maven编译项目时,包含了大量与编译相关的逻辑,那你就需要重新考虑一下Maven的用法了。高度定制的Maven编译并不一定好用;当需要的时候,请尽量使用现有的插件。例如,如果你的项目需要编译Java源代码并创建一个JAR文件,请使用Java插件和JAR插件。如果你忽略了插件的使用,而去使用Maven的Ant集成,建议你干脆不要使用Maven。不要错误地使用Maven,要按照Maven的方式来使用它。

        文森特说:“尼奥,吃了那个红药片…。”,提姆说:“抵抗是没有用的。”

生成项目文档
        如果你正在开发一个Java应用程序或视一个类库,你可能需要生成JavaDoc。
步骤
        只要执行了javadoc命令,Maven就会生成项目文档。以下是执行javadoc命令的输出结果:
C:\dev\mavenbook\code\genapp\test-application>maven javadoc
__ __
| \/ |__ _Apache__ ___
| |\/| / _` \ V / -_) ' \ ~ intelligent projects ~
|_| |_\__,_|\_/\___|_||_| v. 1.0.2
                build:start:

xdoc:init:

maven-javadoc-plugin:report:
[mkdir] Created dir: C:\dev\mavenbook\code\genapp\test-application\
target\javadoc\src
[javadoc] Generating Javadoc
[javadoc] Javadoc execution
[javadoc] Loading source files for package mdn.testapp...
[javadoc] Constructing Javadoc information...
[javadoc] Standard Doclet version 1.5.0_01
[javadoc] Building tree for all the packages and classes...
[javadoc] Generating C:\dev\mavenbook\code\genapp\test-application\
target\docs\apidocs\constant-values.html...
[javadoc] Copying file C:\Documents and Settings\tobrien\.maven\cache\
maven-javadoc-plugin-1.7\plugin-resources\stylesheet.css to file C:\dev\
mavenbook\code\genapp\test-application\target\docs\apidocs\stylesheet.css...
[javadoc] Building index for all the packages and classes...
[javadoc] Building index for all classes...
[delete] Deleting directory C:\dev\mavenbook\code\genapp\test-
application\target\javadoc\src
BUILD SUCCESSFUL
Total time: 7 seconds


        一旦这个Maven命令被执行,JavaDoc将被放置在tes-application/target/javadoc/src目录下。
总结
                Maven又完成了“繁重”的任务。你需要JavaDoc,然后告诉Maven生成JavaDoc,仅此而已。需要强调的是,你并没有向Maven传递任何关于项目的信息,它知道怎么办。Maven的大部分功能就像这样简单直接。你只需告诉Maven关于项目的信息,你要做的事就所剩无几了;Maven自会处理细节。

让Maven了解你的团队
        Maven 是一款很好用的进行合作开发的工具。你可以使用它来生成开发人员活动报告以及项目投稿人列表和邮件列表。

步骤
        很多项目都有邮件列表,人们用它来讨论架构于实现。像Tomcat、Maven和Ant这样的项目都是由一个社区的开发者共同开发的,他们共同订阅同一个邮件列表。并不只是开源项目有邮件列表,很多组织已经开始使用在开源的、公开的项目中所使用的合作模型。因为邮件列表是合作中极为重要的一部分,所以Maven提供了一种在project.xml文件中指定项目邮件列表的方法。以下是project.xml文件的一部分,它向project.xml文件中添加了mailingLists元素:
<mailingLists>
<mailingList>
<name>Maven User List</name>
<subscribe>users-subscribe@maven.apache.org</subscribe>
<unsubscribe>users-unsubscribe@maven.apache.org</unsubscribe>
<archive>http://marc.theaimsgroup.com/?l=turbine-maven-user</archive>
</mailingList>
<mailingList>
<name>Maven Developer List</name>
<subscribe>dev-subscribe@maven.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@maven.apache.org</unsubscribe>
<archive>http://marc.theaimsgroup.com/?l=turbine-maven-dev</archive>
</mailingList>
</mailingLists>

        Maven项目中有两种类型的队员:投稿者与开发者。然而,在你的项目中,这个定义可能要改变了。投稿者通常是指开源社区中提供补丁和文档的成员,开发者是项目的核心成员。在ASF中,投稿者与执行者(committers)都可以给项目投稿,但投稿者没有对源代码库的写入权限,也没有对项目中重大决定的表决权。以下是project.xml文件的一部分,它向project.xml文件添加一个contributor元素和一个developer元素:
<developers>
<developer>
<name>Vincent Massol</name>
<id>vmassol</id>
<email>vmassol@apache.org</email>
<organization>Apache Software Foundation</organization>
<roles>
<role>Author</role>
<role>Developer</role>
</roles>
<url>http://www.massol.net</url>
<timezone>+1</timezone>
</developer>
</developers>
<contributors>
<contributor>
<name>Tim OBrien</name>
<email>tobrien@apache.org</email>
<organization>Apache Software Foundation</organization>
<roles>
<role>Author</role>
<role>Developer</role>
</roles>
<url>http://www.oreillynet.com/pub/au/1738</url>
<timezone>-6</timezone>
</contributor>
</contributors>


总结
                你得告诉Maven谁在为项目工作,一旦我们生成了项目网站,这么做就会有用了。生成网站的插件和从源代码控制系统生成报表的很多插件都将使用这个POM中所列出了开发者和投稿者的信息。

把Maven指向源代码控制系统
你使用源代码控制系统吗?把源代码控制系统的相关信息告诉Maven,你就可以生成一些有趣的报表,这将在本书后面的部分学习。把项目与一个源代码库联系在一起,你就可以使用Maven的源代码控制管理(SCM)插件了,这个插件提供可以用来从从版本控制系统(如CVS或Subversion)更新和释放源代码的Maven命令(goals)。

步骤
                首先你得在project.xml文件中添加一个repository元素。以下repository元素来自Apache Struts项目,它指向了位于http://svn.apache.org/repos/asf/struts/core/trunk的Subversion 中的源代码库:
<repository>
<connection>
        scm:svn:http://svn.apache.org/repos/asf/struts/core/trunk
</connection>
<developerConnection>
        scm:svn:https://svn.apache.org/repos/asf/struts/core/trunk
</developerConnection>
<url>http://svn.apache.org/repos/asf/struts/core/trunk</url>
</repository>


                connection元素告诉Maven SCM的位置,这个位置是只读的。SCM把这个URL标识为一个SCM位置,svn告诉Maven位于这个URL的是一个Subversion库,URL的最后一部分表示项目主体的位置。你还可以指定developerConnection元素;当你想要把相关人员分成有源代码写入权限的和无源代码写入权限的,你就会用到developerConnection
                url元素提供的URL,可以用来浏览源代码库。在Struts中,Struts自己已经指向一个Subversion库,因为用常规浏览器就可以浏览。Struts团队也可以选择指向ViewCVS的实例,它被配置为指向ASF Subversion库,这个库位于以下URL:
                http://cvs.apache.org/viewcvs.cgi/struts/core/trunk?root=Apache-SVN。
当你把一个project.xml文件指向一个特定的源代码控制系统时,你还可以指定某一特定项目的不同版本和不同分支。以下XML片段显示了Apache Struts的project.xml中versions元素和branches元素的精简版本:
<versions>
<version>
<id>1.2.0</id>
<name>1.2.0</name>
<tag>STRUTS_1_2_0</tag>
</version>
<version>
<id>1.2.6</id>
<name>1.2.6</name>
                        <tag>STRUTS_1_2_6</tag>
</version>
</versions>
<branches>
<branch>
        <tag>STRUTS_1_1_BRANCH</tag>
</branch>
<branch>
        <tag>STRUTS_1_2_BRANCH</tag>
</branch>
</branches>


                版本(Versions)会被一些插件使用,例如,Announcements插件,它为每个版本创建释放记录。

关于CVS
                许多公司和开源项目已经转为使用Subversion,一些像JBoss这样的主要的开源项目也已经转为使用Subversion。如果你的项目正在使用CVS,你得添加一个repository元素,这个元素类似于Jakarta Cactus项目中的repository元素,以下是Jakarta Cactus项目中的repository元素:
<repository>
<connection>
        scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:jakarta-cactus
</connection>
<url>http://cvs.apache.org/viewcvs.cgi/jakarta-cactus/</url>
</repository>


如果你要使用CVS的pserver来暴露你的库,以上的repository元素会很合适。如果你要通过SSH来访问CVS,你得设定环境变量CVS_RSH的值为ssh,语法如下:
<repository>
<connection>
        scm:cvs:pserver:anoncvs@cvs.apache.org:/home/cvspublic:jakarta-cactus
</connection>
<url>http://cvs.apache.org/viewcvs.cgi/jakarta-cactus/</url>
<developerConnection>
        scm:cvs:ext:tobrien@somehost:/home/cvs/repository:modulename
</developerConnection>
</repository>

                
生成Maven项目网站
Maven可以用项目的规律和项目的相关信息,创建一个项目网页。

步骤
                要想创建一个Maven项目网站,请使用以下Maven命令来运行Site插件:
                        C:\dev\mavenbook\code\genapp\test-application> maven site

                运行Site插件,将会在默认网站输出目录下创建项目网站:test-application/target/docs/index.html。如果你加载这个HTML页,你就会看到一个带有独特的Maven外观的网站。图1-5显示了一个略微经过定制的Maven网站,上面有定制的组织徽标和项目徽标。这不是一个认为编写的网站,你所看到是一个名为Jaxen的项目的网站,这个项目把Maven当作编译系统来使用。
                
image                
图1-5 Maven项目网站示例

        大多数Maven项目网站都有一个项目文档导航栏,点击其中的链接,可以查看所有Maven项目所共享的信息。Project Info(项目信息)链接包含项目的相关信息、有件列表、关于源代码控制系统的信息以及发行追踪(所有这些都在第四章中学习)。生成的Maven网站的内容通过创建和修改xdocs目录下的XML标记来产生。在图1-5中,这个项目包含五个项目指定的文档:概览(Overview)、FAQ、发布(Releases)、CVS访问(CVS Access)和状态(Status)。这些文档包含在左边的导航栏中,因为它们包含在xdocs/navigation.xml文件中。xdocs目录是Maven用来存放项目指定文档的目录,这些文档都是XML XDoc格式。下面是Jaxen中navigation.xml文档的内容:
<?xml version="1.0" encoding="ISO-8859-1"?>
        
<project name="jaxen" repository="jaxen" href="http://jaxen.org">




<links>
<item name="The Werken Company" href="http://www.werken.com/"/>
</links>
<menu name="jaxen">
<item name="Overview" href="/index.html"/>
<item name="FAQ" href="/faq.html"/>
<item name="Releases" href="/releases.html"/>
<item name="CVS Access" href="/cvs-usage.html"/>
<item name="Status" href="/status.html"/>
</menu>

</properties>

<section name="News">
<p>
Added the slidedeck from my
<a href="/pdf/intro-slides.pdf">SD-West presentation</a>.
</p>
<p>
Check out these
<a href="http://dom4j.org/benchmarks/xpath/index.html">Performance
Benchmarks</a> comparing dom4j and Jaxen against Xerces and Xalan.
</p>
</section>
[...]
</document>


        一旦生成了项目网站,你就可以在浏览器中加载target/docs/index.html来打开你的项目网站。
关于这些文件的语法
你可以在Maven XDoc插件FAQ站点找到更多关于navigation.xml文件的语法和格式的信息,站点的 URL: http://maven.apache.org/reference/plugins/xdoc/faq.html。你还可以在Maven XDoc插件主页找到更多关于个人主页格式的信息,URL如下:
http://maven.apache.org/reference/plugins/xdoc/index.html。这个插件的主页还包含更多关于如何定制Site插件的输出和行为的指导。
        本书的第四章将更加深入地分析能够使项目的行为和结构焕发光彩的多种报表。
定制网站报表
        网站的生成创建了许多有用的报表。但是,根据不同的风格,你可能需要某些报表处于非激活状态。
步骤
        要改变Maven在生成网站时创建的报表,就得修改project.xml文件中reports元素的内容。以下是一个reports元素,其中有几个report项是激活的:
<reports>
<report>maven-changelog-plugin</report>
<report>maven-changes-plugin</report>
<report>maven-checkstyle-plugin</report>
<report>maven-clover-plugin</report>
<report>maven-cruisecontrol-plugin</report>
<report>maven-developer-activity-plugin</report>
<report>maven-faq-plugin</report>
<report>maven-file-activity-plugin</report>
<report>maven-license-plugin</report>
<report>maven-linkcheck-plugin</report>
<report>maven-javadoc-plugin</report>
<report>maven-jdepend-plugin</report>
<report>maven-jira-plugin</report>
<report>maven-junit-report-plugin</report>
<report>maven-jxr-plugin</report>
<report>maven-pmd-plugin</report>
<report>maven-simian-plugin</report>
<report>maven-tasklist-plugin</report>
</reports>

   要把一个报表在Maven生成网站时排除在外,只要从reports元素中移除这个报表plug-in元素。没有制定reports元素的项目会生成一组默认报表:jdepend、Checkstyle、changes、changelog、developer-activity、file-activity、license、javadoc、jxr、junit、linkcheck以及tasklist。当你在项目的project.xml文件中添加一个reports元素时,你必须列出所有你想要生成的报表。
回顾
        reports元素列出了所有的报表,但你可能想知道这些报表到底有什么功能。表1-1列出了对这些报表的简要描述。

表1-1 报表插件
        
报表插件                                                描述
maven-changelog-plugin        Changelog是一个使用repository元素
创建报表的插件,所创建的报表记录源代码
控制系统中最近的变化。
maven-changes-plugin        格式化xdocs目录中的changes.xml
maven-checkstyle-plugin        关于Java代码风格的报表
maven-clover-plugin        使用一款商业的覆盖率测试工具为项目的单元
测试覆盖率生成HTML页。
maven-cruisecontrol-plugin        这个插件将在第四章中讨论。
maven-developer-activity-plugin        创建一个报表,它记录最近源代码控制系统中开发者的活动情况。
maven-faq-plugin        格式化xdocs目录下,项目的FAQ文档。
maven-file-activity-plugin        创建一个报表来记录源代码控制系统中文件的活动情况。
maven-filebugs-plugin        找出Java代码中常见的有漏洞的模式。
maven-license-plugin        包括一个链接,它链接到项目报表中的项目许可
maven-linkcheck-plugin        
maven-javadoc-plugin        向生成的Maven网站中添加JavaDoc
maven-jcoverage-plugin        生成有关单元测试覆盖率的报表和图象。
maven-jdepend-plugin        创建一个报表,它列出了包之间的依赖项
maven-jira-plugin        从一款名为Jira的商业发布追踪系统读取公开的发布,并创建报表。
maven-junit-report-plugin        创建一个聚集JUnit结果的报表。
maven-jxr-plugin        以注释的形式生成JAVA源代码的 相互参照项
maven-pmd-plugin        为潜在的编码错误生成报表,如未使用的本地变量和复杂的表达式等。
maven-simian-plugin        找出源代码树中重复的代码。
maven-statecvs-plugin        生成CVS活动的统计和图象。
maven-tasklist-plugin        在源代码中搜索@todo标签。

获取插件和报表更详尽的列表,请访问:
.Maven插件:
http://maven.apache.org/reference/plugins/index.html
.Maven的插件沙盒:http://maven.apache.org/plugins-sandbox/index.html
.SourceForge上的Maven插件:http://maven-plugins.sourceforge.net/
.第三方Maven插件:http://maven.apache.org/reference/3rdparty.html
  
posted on 2007-12-24 11:03 礼物 阅读(1726) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。

网站导航: