Maven入门基础学习



---本文翻译自Maven官网Mavenin5Minutes稍有删改所有版权归maven所有本文只作学习交流的用
安装
Maven是个java工具,因此,在继续的前你必须安装好java(即本机要安装好jre)
首先下载Maven并把它解压到你要安装目录例如:windows下C:\\maven,或者linux下/usr/local/maven
的后把系统变量M2_HOME和变量值maven安装目录/bin设置到你系统环境变量中然后在系统控制台(windowscmd)或终端(linux)下敲入mvn–version如果你安装成功控制台将打印出你安装maven版本号,如:
C:\\DocumentsandSettings\\Administrator>mvn-version
Mavenversion:2.0.6
C:\\DocumentsandSettings\\Administrator>
根据你网络设置你可能需要进行些额外配置如果有需必要请查阅如何配置Maven.

创建项目
在命令行中执行以下(Maven把它叫作goal)命令:
mvnarchetype:create-DgroupId=com.mycompany.app-DartactId=my-app
如果你是首次运行该(goal)命令maven将要花些时间去把最新工具包(Maven把它叫作artacts)下载到你本地仓库(什么是本地仓库?先放着稍后再作介绍)你也许要执行很多次上面命令才能成功远程服务器有时可能连接不上或者超时(这种情况很少见除非是你本地网络没有配置好)
命令执行完后你将看到maven生成了个名为my-app目录这个名字就是你在命令中指定artactId,进入该目录你将发现以下标准项目结构:
D:\\MY-APP
│pom.xml

└─src
├─
│└─java
│└─com
│└─mycompany
│└─app
│App.java

└─test
└─java
└─com
└─mycompany
└─app
AppTest.java

其中src//java目录包含了项目源代码src/test/java目录包含了项目测试代码pom.xml是项目项目对象模型(ProjectObjectModelorPOM) [Page]

POM
pom.xml文件是maven对个项目核心配置这个文件将包含你希望如何构建项目大多数配置信息POM大而复杂但你不用全部去了解只要使用些常用配置就可以了下面列出这个POM内容:
<projectxmlns=\"http://maven.apache.org/POM/4.0.0\"xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xsi:schemaLocation=\"http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd\">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artactId>my-app</artactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>my-app</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artactId>junit</artactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

我刚刚做了什么?

你执行了Maven命令(goal)archetype:create并且设置了些参数在这个命令中前缀archetype是包含create命令个mavenplugin如果你熟悉ant你可能做过类似事情这个goal命令根据项目原型(符合maven标准项目模板)建立了个简单项目现在可以确定地说个maven插件就是些有着相同目goals命令集合例如jboss-maven-plugin这个插件就是为了处理各种和jboss相关任务

Build项目

mvnpackage
这时命令行将会打印出各种动作并且以下面段信息结束:
...
[INFO]------------------------------------------------------------------------
[INFO]BUILDSUCCESSFUL
[INFO]------------------------------------------------------------------------
[INFO]Totaltime:2seconds
[INFO]Finishedat:ThuOct0521:16:04CDT2006


[INFO]FinalMemory:3M/6M
[INFO]------------------------------------------------------------------------
和首次执行命令区别(archetype:create),你也可以注意到了这次执行只是个简单命令---package区别于goal,这是个phase(阶段)个phase(阶段)是指构建生命周期个阶段构建生命周期是指有序系列phase(阶段)当给出个phase(阶段)Maven将执行所有在此阶段前phase及其自身例如如果我们执行compile阶段实际上执行阶段有: [Page]
validate
generate-sources
process-sources
generate-resources
process-resources
compile
你可以使用以下命令来测试新编译和打包出来jar包
java-cptarget/my-app-1.0-SNAPSHOT.jarcom.mycompany.app.App
这时将打印出最经典:
HelloWorld!

运行Maven工具

Mavenphases(阶段)
虽然很难列出张非常全面但在此可先列出最普通默认生命周期阶段:
validate验证工程是否正确所有需要资源是否可用
compile编译项目源代码
test:使用合适单元测试框架来测试已编译源代码这些测试不需要已打包和布署
Package:把已编译代码打包成可发布格式比如jar
egration-test:如有需要将包处理和发布到个能够进行集成测试环境
very:运行所有检查验证包是否有效且达到质量标准
:把包安装在本地repository中可以被其他工程作为依赖来使用
Deploy:在集成或者发布环境下执行将最终版本包拷贝到远程repository使得其他开发者或者工程可以共享
除以上介绍默认阶段还有两个重要Maven生命周期它们是:
clean:清除先前构建artacts(这个词用中文还真不好翻译在maven中把由项目生成包都叫作artact)
site:为项目生成文档站点

Phases(阶段)实际上对应着潜在goals特殊每个阶段执行特殊goals由项目类型所决定例如:如果项目类型是jar,package阶段将默认执行jar:jargoals,如果项目类型是war,那么package阶段执行goals将是war:war
有件有趣事情需要注意那就是phases和goals需要按顺序来执行
mvncleandependency:copy-dependenciespackage
这个命令将先清除项目然后拷贝依赖最后把项目打包当然在打包的前会先执行此阶段的前阶段.如compile,test等.
生成站点
mvnsite
这个阶段生成基于pom.xml配置项目信息你可以在target/site目录下看到生成文档
整理总结
我们希望这编快速入门能激起你对Maven兴趣注意这仅仅是编浓缩了快速入门指南需了解Maven更多更全特性请查阅Maven入门指南
Tags:  maveneclipse maven2 maven maven入门

延伸阅读

最新评论

发表评论