`
mars914
  • 浏览: 430067 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Maven从入门到精通系列之一

阅读更多

 

1.概述

Apache Maven一个潜在的基于javaapache ant的构建工具的替代者。两者之间的比较:

 

一、ant脚本是可以直接运行在maven中的。mavenant最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POMproject object model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。

 

二、Maven对所依赖的包有明确的定义,如使用哪个包,版本是多少,一目了然。而ant则通常是简单的inclde 所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的commonlogging 是哪个版本的,唯一的方法就是打开 METAINF 目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。

 

三、Maven基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jartldpom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。

 

四、maven有大量的重用脚本可以利用,如生成网站,生成javadocsourcecode reference,等。而ant都需要自己去写。试试 maven site 的效果。

第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。

 

 

 

2.安装

下载Maven.目前的版本是3.0.3

http://maven.apache.org/download.html#Maven_Documentation

解压缩后,新建环境变量Maven_Home到maven目录;在环境变量path中增加maven的bin目录。

在命令行输入

Mvn -version

显示

Maven version: 3.0.3

则安装成功。

3.生成一个Maven工程

在命令行中,进入你常用的项目文件夹,输入

mvn archetype:create -DgroupId=com.maven.test -DartifactId=maven-demo

如果网络配置(详见5)正确,maven就会下载需要的文件,执行任务,最终显示“BUILD SUCCESSFUL”,并生成maven-demo目录。

让我们看一下mvn对项目标准的目录组织:

 directory                                                 description


    /maven-demo/pom.xml                        描述项目对象模型(Project Object Model)。  

/maven-demo/src/                                      Sources
    /maven-demo/src/main/java/                        Java source tree
    /maven-demo/src/test/java/                         Java unit tests
    /maven-demo/src/main/resources/                 Java classpath resources
    /maven-demo/src/test/resources/                  Resources for unit-tests
    /maven-demo/target/classes/                        compiles classes
    /maven-demo/target/test-classes/                 compiles test classes
    /maven-demo/target/dots                             other plugins' output

/maven-demo/src/main/webapp                      root of webapp

 

Build the project 构建项目

cd 到maven-demo目录下,执行下面命令

mvn package

此命令执行的过程有:

    1、validate

    2、generate-sources

    3、process-sources

    4、generate-resources

    5、process-resouces

    6、compile

你可以通过以下命令测试新编译和打包的jar文件

java -cp target/maven-demo-1.0-SNAPSHOT.jar com.maven.test.App

输出以下结果:

Hello World!

 

4.Maven 常用命令

maven定义的默认的生命周期命令

• validate: 验证项目是否正确以及相关信息是否可用

• compile: 编译工程源代码   

• test:  运行测试  

• package: 根据事先指定的格式(比如jar),进行打包。.
• integration-test: 部署到运行环境中,准备进行集成测试   

• verify: 对包进行有效性性和质量检查 

• install: 安装到本地代码库
• deploy: 在集成或发布环境,将包发布到远程代码库.

 

  除了默认生命周期外的两阶段

• clean: 清除以前的构建物
• site: 生成项目文档

 

可以通过对目标及命令的组合使得一个命令完成多个功能,比如:

 

mvn clean dependency:copy-dependencies package

此命令将清理项目、复制所依赖的包、对工程进行打包

 

相当于按顺序执行

mvn clean

mvn dependency:copy-dependencies

mvn package

 

5. 网络设置

maven运行时需要网络环境。如果你的网络需要代理,则要在maven目录的conf/settings.xml中设置。

找到<proxies>节点,可根据自己实际环境设置。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics