首页 > 代码库 > Maven3学习总结-环境搭建
Maven3学习总结-环境搭建
Maven 是一个项目管理和构建自动化工具。但是对于我们程序员来说,我们最关心的是它的项目构建功能。
首先:从Maven官网(http://maven.apache.org/download.cgi ;)下载maven,并解压缩。
其次:配置maven的环境变量:M2_HOME,右键我的电脑-》环境变量-》用户变量-》创建->M2_HOME,value:就是你的maven的bin所在目录。并把该变量添加到path中。
最后:测试mavne是否安装成功,在CMD命令中键入 mvn -v 命令:如果出现如下所示,就表示成功安装mavne
Maven 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目必须遵循如下的结构:
app
--pom.xml
--src
--main
--java
--package...
--class
--test
--java
--package..
--class
pom.xml文件时项目构建文件(Project Object Model):其内容如下:
<?xml version="1.0" encoding="UTF-8" ?> <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>org.oracle.maven</groupId> <artifactId>maven-hello</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.10</version> </dependency> </dependencies> </project>
以上文件文件中 modelVersion是模块版本,对于Maven2以后版本此处都是4.0.0, <groupId>:表示项目属于哪一个组,此处一般都是对应公司,<artifactId>是模块(子项目)的唯一名称,<version>表示当前的版本(SNAPSHOT:表示快照版本,测试)<name>用于说明项目。根据以上结构创建好项目结构:
以上的main中存放项目(模块) 的主代码,test中用与保存测试代码,在main中的winstar包下创建一个java类:代码如下:
<code>
</code>
回到CMD命令中,执行mvn compile(编译命令) 会看到如下:
BUILD SUCCESS:构建成功,同时在项目中出现了一个target文件夹在target下有classes和maven-status两个文件夹,我们的HelloMaven.class文件mavne已经帮我们自动编译完成并保存在classes文件夹中。
在test->java->org->winstar包下创建如下测试类,代码如下:
<code>
package org.oracle.domain;
import org.junit.*;
import static org.junit.Assert.*;
public class HelloTest{
@Test
public void test(){
Hello hello=new Hello();
String str=hello.sayHi();
assertEquals(str,"hello");
}
}
</code>
保存pom.xml文件后,执行mvn test, maven会自动从网上(中央仓库,这个后头会讲)下载所需的jar,并保存的本地的(仓库:默认在C:\Users\Administrator\.m2\repository目录下)硬盘上,我们可以查看该目录,发现多了个junit的文件夹,其中已经包含了jar文件。
执行安装,将项目生成jar,在CMD中执行 mvn clean install 命令(clean用于清空target目录),会看到如下:
mavne会把项目生成hello-mavne-0.0.1-SNAPSHOT.jar文件,其中 hello-maven是<artifactiId>的名称。同时,这个jar文件会保存到本地仓库中。我们把这个jar文件 只需通过项目的pom.xml文件导入即可。
我们完成第一maven项目后,基本了解了maven的项目结构和两个基本命令:mvn compile(编译) mvn test(测试),而且maven的项目需要网络的支持(需要从中央仓库中下载jar文件)。那么maven到底能给我们带来什么好处(如何实现项目、模块的自动构建以及管理呢)?接下来我们来做第二个实验,参考第一个maven项目结构,建立一个新的文件夹(项目,其层次结构与第一个相同)。
在model中创建一个java类:
<code>
package org.winstar.model;
public class World{
public String show(){
HelloMaven hm=new HelloMaven();
return hm.sayHello();
}
}
</code>
首先我们的通知maven要导入的模块名称,mvn通过GAV(GroupId,ArtifactId,Version),简称“坐标” 来定位项目,并建立项目的依赖关系(依赖关系是maven中的一个重点,这个后面会讲到)。在新创建的项目的pom.xml文件中添加如下代码:
<?xml version="1.0" encoding="UTF-8"?> <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>org.winstar.maven.ch002</groupId> <artifactId>maven_002</artifactId> <version>0.0.1-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.winstar.maven.ch001</groupId> <artifactId>hello_maven</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
编辑并保存该文件,回到cmd中执行如下命令:
至此,我们的项目成功运行(并导入第一个项目模块),有点感觉啦吧!!!
通过以上的两个实验,我们发现mavne的项目架构,那么我们每次都需要这么麻烦的去手动的创建文件目录吗(Eclipse的mavne支持和sts的mavne支持,后面会讲),不需要的。我们只要执行 mvn archetype: generate。 maven会自动根据骨架来完成项目的创建。
首先我们创建一个文件夹,然后进入该文件夹,并执行mvn archetype:generate
等待。。。提示输入groupId.artifactId: version package 最后键入y完成项目的构建,看我们的文件夹吧!自动完成,太给力啦!
我们会看到mavne会自动联网下载所需的jar文件资源(同时自动保存到本地仓库中,下次就不需从网上去下载了。本地仓库可以在maven的目录中有个conn的目录,该目录下有一个settings.xml文件修改成自己的目录即可)。
mvn archetype:generate命令会自动创建maven项目架构(包括pom.xml和各个文件夹)这个命令就是在Eclipse中创建mavne项目时用到的。好了简单总结一下mvn的基本命令:
1:mvn compile--->编译
2:mvn test--->测试(会自动生成测试报告)
3: mvn clean package--->将项目打包(clean:清空target目录)
4:mvn clean install--->安装(会根据artifactiId和version生成一个jar,并保存到本地的仓库中)
5:mvn archetype: generate---->(根据archetype:骨架)自动创建mavne项目 。
Maven3学习总结-环境搭建