Maven2 二三事

VN:F [1.9.10_1130]
Rating: 0.0/5 (0 votes cast)

说起,真的是很好用的工具啊!啊啊!啊啊啊!

本文只涉及笔者认为有必要提及的小细节,Maven的使用指引请参考官方文档和其他相关文章。

Q&A开始

关于Maven

  1. Maven是什么?
    Maven是一个构建工具。当前主要被设计用来构建Java工程,但是和Ant等程序一样,它具有很强的扩展性。
  2. 使用Maven有什么好处?
    好处有很多,简单罗列如下:

    1. 完整的项目描述
      Maven的项目配置文件POM.xml可以描述软件项目方方面面的关联信息,包括:软件平台,组件依赖,SCM服务器,开发者,跟踪服务器,部署信息等等。
    2. 规范的软件生命周期
      一个软件的开发过程中需要不断的迭代:编码、测试、分析、部署……Maven可以让这一切自动化,从而解放配置管理负担,提高项目质量。
    3. 事实标准
      Maven有作为开源界事实标准的潜在能力,虽然它对Java以外的程序员不够友好,虽然他没有 Gem那么好用,标准的好处就是,人人都可以轻易的通过解读Maven配置了解项目相关信息。

恩,我们继续。。

Maven安装

  1. 如何安装?
    参看官方手册;一些建议,请将安装目录加入System PATH,方便使用Maven命令;Maven目录名称可以使用通用一点的。
  2. 下载的软件包在哪里?
    默认Maven会下载到用户目录下,请自行修改mavn/conf/config.xml中相关内容
  3. Maven的Repository太慢了!
    事实上,有很多镜像供你选择,请使用Google搜索maven repository,会有很多WebDAV格式的结果,将他们中最快的添加到你的配置文件即可。

项目组织

  1. 如何和Eclipse结合
    Maven下面有几个IDE用插件,个人比较推荐q4e,使用之后在拥有pom.xml的Eclipse项目中选择使用Maven Dependencies Management就可以引入Maven依赖了。
    安装Maven和q4e后的Step by Step:

    1. 使用命令行进入开发目录,一般为Eclipse的工作目录
    2. 输入命令 mvn archetype:create -DgroupId=org.ave7.example -DartifactId=app-example Maven将按照默认layout创建新项目
    3. cd app-example 输入 mvn eclipse:eclipse生成eclipse配置文件,如果是wtp项目,请使用命令 mvn eclipse:eclipse -DwtpVersion=1.5 (其他选项1.0 1.5 R7)
    4. 启动eclipse,选择import -> existing project into workspace 选择刚创建的项目
    5. 在project上点右键,maven 启用 enable maven dependencies
    6. 自行调整class path 等
  2. 如何协调依赖版本
    引用不同的依赖时可能造成间接依赖的版本不一致,除了exclude以外,还可以在parent pom中使用<dependencyManagement>将可能用到的artifact及其版本包括其中,在dependencies是,只需指明groupId和artifactId即可。
  3. 生成测试覆盖率报告
    在pom中加入
  4. <reporting>
    <plugins>
    <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    </plugin>
    </plugins>
    </reporting>
    在相应目录命令行输入 mvn site 即可

下期内容预告:Maven与SCM

您可能有兴趣的文章:

VN:F [1.9.10_1130]
Rating: 0.0/5 (0 votes cast)
Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>