Julia's profile美丽日子PhotosBlogLists Tools Help

Blog


    MAVEN 基础使用

      maven是一个源代码开放的JAVA项目管理工具,在其支持网站(http://maven.apache.org)上可以上载到最新的软件包,MAVEN需要JDK的支持。在安装MAVEN之前请确认JDK已经安装,并设置好了JAVA_HOME和CLASSPATH这些环境变量.
      把下载的MAVEN解压到D:\MAVEN目录后,设置MAVEN_HOME=D:\MAVEN,同时,在PATH中加上D:\MAVEN\BIN,然后执行 >maven -v 来验证是否正确.
      现在就可以把项目纳入MAVEN的管理之下了.假设项目的根目录是D:\PROJECT\,其中源代码在D:\PROJECT\SRC\JAVA\目录之下.
      MAVEN使用POM来对项目进行表示,而用于描述POM的XML文件则由三个主要部分组成:
    1\ 项目管理部分
        包括项目的组织,开发人员名单,源代码位置等信息;
    2\ 项目关联部分
        包括有关项目相关性的所有信息;
    3\ 项目构建部分
        包含项目构建过程及要在构建中生成的项目报告等信息;
     
    要使用MAVEN来管理我们的这个项目,需要在项目的根目录D:\PROJECT\下创建一个名为project.xml的文件,其完整内容如下所示:
     
    project.xml
    <project>
      <id>linuxgam</id>
      <build>
        <sourceDirectory>
          ${basedir}/src/java
        </sourceDirectory>
      </build>
    </project>
     
      在用MAVEN进行项目构建管理时所有的行为都是基于目标(GOAL)的,MAVEN中的GOAL类似于ANT中的TARGET,指的是在某种情况下应该执行的动作集合.
     
    D:\PROJECT>MAVEN JAVA:COMPILE
    对项目进行编译,只要在项目的根目录下执行MAVEN预定义的JAVA:COMPILE目标就可以了
     
    D:\PROJECT>MAVEN JAR
    将编译生成的.CLASS文件打成JAR包,并保存在D:\PROJECT\TARGET目录下
     
    D:\PROJECT>MAVEN CLEAN
    清除编译结果(CLASS JAR)
     
      需要注意的是,在第一次执行MAVEN中预定义的目标时,它将首先自动从网络上下载一些依赖的JAR包,然后才能开始政党的编译过程。编译完成后,MAVEN会将生成的.CLASS文件保存到D:\PROJECT\TARGET\CLASSES\目录下.
    而文件名则由PROJECT.XML中的id和currentVersion元素共同决定.
      JAVA:COMPILE \ JAR \ CLEAN 是使用MAVEN管理JAVA项目时最常用的三个目标,MAVEN中预定义的几碍个目标基本上能够满足绝大多数应用场合的需要.为了能更好的管理这些目标,MAVEN引入了插件概念,几乎所有的MAVEN功能都是以插件的形式提供的,而MAVEN本身可以看成是一个用来对这些插件进行管理的内核. 
     
      在了解了MAVEN的一些基本功能之后,下面再来看看MAVEN是如何将第三方工具缝的集成到项目构建过程中的,我们选择JUNIT测试工具作为例子.首先,需要在PROJECT.XML中添加UNITTESTSOURCEDIRECTORY元素:
     project.xml
    <project>
      <id>linuxgam</id>
      <currentVersion>1.0</currentVersion>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artfactId>junit</artfactId>
          <version>3.8.1</version>
        <dependency>
      </dependencies>
      <build>
        <sourceDirectory>
          ${basedir}/src/java
        </sourceDirectory>
        <unitTestSourceDirectory>
          ${basedir}/src/test
        </unitTestSourceDirectory>
        <unitTest/>
      </build>
    </project>
     

    之后,如果要进行单元测试,只需要在项目根目录下执行MAVEN预定义的TEST目标就可以了
    D:\PROJECT>MAVEN TEST
    要对配置的JUNIT部分进行单元测试
    在PROJECT.XML中添加reports元素:
    project.xml
    <project>
      <id>linuxgam</id>
      <currentVersion>1.0</currentVersion>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artfactId>junit</artfactId>
          <version>3.8.1</version>
        <dependency>
      </dependencies>
      <build>
        <sourceDirectory>
          ${basedir}/src/java
        </sourceDirectory>
        <unitTestSourceDirectory>
          ${basedir}/src/test
        </unitTestSourceDirectory>
        <unitTest/>
      </build>
      <reports>
        <report>maven-changelog-plugin</report>
        <report>maven-file-activity-plugin</report>
        <report>maven-developer-activity-plugin</report>
    然后在根目录下执行SITE命令,MAVEN就会在D:\PROJECT\TARGET\DOCS\目录下为项目生成相应的文档,打开该目录下的INDEX.HTML,你会发现MAVEN已经自动生成项目信息,邮件列表,更改记录等文档.
    D:\PROJECT>MAVEN SITE
     
     
    MAVEN提出一个叫生命周期的定义。
    每个阶段会包含此前所有阶段的操作。
    用户可以根据自己的需要决定用MAVEN执行哪些操作。从而选用某个阶段对应的命令。