Maven初学笔记快速入门

2014.4.3

Maven是一个据说比ant好用的项目管理工具(尽管我也还没学ant...),maven单词的意思是内行、专家,有必要学习一下了。

与以往各种找中文资料学习新知识的方式不同,这次我要去官网看第一手教程了,我先选择了Getting Started in 5 Minutes,快速入门。

环境需求:需要jdk1.6以上

目前Maven的最新版本是3.2.1,下载好解压后有一个apache-mven-3.2.1的文件夹,设置环境变量,window下用Winkey+Pause键选择高级系统设置,key是M2_HOME,value是路径(路径最后不要带'\'),然后在添加一个M2,值是%M2_HOME%\bin。

打开cmd(WinKey+r,,输入cmd回车),输入mvn  --version,若有如下类似信息则表示配置成功



(Windows防火墙或一些杀毒软件可能会影响Maven正常工作)

创建一个用于放置Maven project的文件夹,并在cmd中cd 到该目录,输入

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
,第一次安装Maven是会花费若干时间,期间它在下载一些文件。下载完之后,文件夹下多了一个my-app文件夹,文件夹名是刚才的命令中的artifaceId决定的(artifact的有道翻译是人工制品,手工制品)。
my-app中是如下的文件结构

src/main/java文件夹存放project的源代码,src/test/java文件夹下存放测试代码,app文件夹中存放的是一个输出Hello World!的App.java文件,pom.xml文件是project's Project Object Model(POM)直译是项目对象模型。
pom.xml文件是项目的核心配置文件。
POM可以非常大足以可以把用户吓跑,但是我们在很刚开始学习时还不必掌握所有的那些纷繁难懂之处。
pom.xml长成这个样子
 
<project xmlns="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.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>
现在分析一下刚才
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
这个命令中做了什么,我们执行了生成 Maven目标原型操作(Maven goal archetype:generate),并且加了一系列的参数。以archetype为前缀的是包含目的的插件(额,勉强翻译)。这个目的创建了一个简单的基于一种archetype(原型)的项目。可以说一个插件是可以完成一种目的的集合(Suffice it to say for now that a plugin is a collection of goals with a general common purpose)。比如jboss-maven-plugin,目的就是处理各种jboss 条目项目("deal with various jboss items")。
下面来建立一个项目cd到my-app中输入
mvn package
运行以后控制台输出一坨东西,

表示Build成功
这条命令比第一条简单很多只有一个 -package,这个命令不是一个goal,而是一个阶段(phase)。phase是建造生命周期的一步,也就是说建造生命周期是一些phase的有序序列,建造生命周期包括validate、compile、test、package、integration-test、verify、install、deploy。当我们提供了phase,Maven就会执行序列中的phase.例如,如果我们执行编译阶段(compile phase),实际上我们得到的执行是1.validate(验证) 2. generate-sources(生成源文件) 3. process-sources (处理源文件)4 . genereate-resources (生成资源)5. process-resources (处理资源) 6. compile(编译)
现在我们可以测试一下刚刚编译并打包好的jar
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
输出了令人欢喜的

 
我们可以在my-app文件夹下看到Maven帮我们生成的一个target文件夹,
class 文件夹里面是原项目生成的class文件,
maven-archiver 里面有一个pom.properties,是Maven的描述文档

surefire-reports里有一些报告
test-classes 是测试的class文件
my-app-1.0-SNAPSHOT.jar是打包好的jar
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高级Java进阶之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值