Maven学习入门——2016-2-17
一、Maven的基本概念
1.1Mawen是干啥的???
我们第一次接触Maven一般就是用Maven为我们的项目加入jar包,非常的方便。
maven到底是干什么的??说白了,maven就是用来管理项目的,就这么简单,管理项目的。
一个项目在开发之前我们需要做好准备工作,包括我们需要的jar包之类的,maven就有一个仓库,要用那些jar包直接拿来用,不用去跑着跑那去下载,verry good!!!我们把项目开发好之后要对项目进行打包,直接用maven搞定。
这就是一个方便我们管理项目的好工具!!!
1.2Maven作用详解
1、项目构建
项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这几个步骤,这六个步骤就是一个项目的完整构建过程。
理想的项目构建是高度自动化,跨平台,可重用的组件,标准化的,使用maven就可以帮我们完成上述所说的项目构建过程。
2、依赖管理
就是可以管理jar包之间的依赖关系,在myeclipse中maven项目的pom文件中Dependency Graph中就有jar包之间的关系
配置方法:就在激活方法打开的节点下,有一个Maven节点,展开这个节点,主要配置其下的两个节点,如下:
Installations: 这一个节点默认使用内置的maven,我们需要使用我们安装的maven,点"add",添加一个我们外部安装的maven即可,注意添加后就勾选上。
User Settings: 默认的是C盘用户目录下的.m2/settings.xml文件,这里要配置外部安装的maven使用的配置文件,如我使用的就是maven安装目录下的 conf/settings.xml文件,选择之后别忘了点击一下,下方的"Update Settings"按钮。
2.2maven的下载
下载地址:http://maven.apache.org/download.cgi
下载完成后,得到一个压缩包,解压,可以看到maven的组成目录
Maven目录分析
- bin:含有mvn运行的脚本
- boot:含有plexus-classworlds类加载器框架
- conf:含有settings.xml配置文件
- lib:含有Maven运行时所需要的java类库
- LICENSE.txt, NOTICE.txt, README.txt针对Maven版本,第三方软件等简要介绍
三、Maven的安装
1、首先要确保电脑上已经安装了JDK(要jdk 1.6+的版本),配置好JDK的环境变量,使用如下的两个命令检查检查JDK安装的情况。
1 Echo %JAVA_HOME% 2 Java -version
2、对apache-maven-3.2.3-bin.zip进行解压缩
对apache-maven-3.2.3-bin.zip进行解压缩,例如解压到如下目录(解压目录最好不要有中文)
3、设置系统环境变量:MAVEN_HOME
4、设置环境变量Path,将%MAVEN_HOME%\bin加入Path中,一定要注意要用分号;与其他值隔开,如下图所示:
%MAVEN_HOME%\bin代表的就是"E:\apache-maven-3.2.3\bin"目录
这里我有一个疑问就是为什么要给maven配置环境变量,有什么作用???
我就想到jdk环境变量的配置,配置jdk的环境变量是为了告诉java文件去哪儿找我们的jdk,而且不管在哪个盘我们都可以找到它。我们配置好mave的环境变量的时候,我们用maven管理项目的时候,不管我们的maven项目在哪个盘,我们都可以用maven。
5、验证Maven安装是否成功
打开cmd窗口
输入"mvn –v"命令 查看Maven的相关信息,如下图所示:
能够出现这样的信息就说明Maven的安装已经成功了。
6、设置MAVEN_OPTS环境变量(可选配置)
由于Maven命令实际上是执行了Java命令,所以可以通过JAVA命令参数的方式来设置MAVEN运行参数。MAVEN_OPTS环境变量正是用于此用途
MAVEN_OPTS
-Xms128m -Xmx512m,分别设置JVM的最小和最大内存,如下图所示:
四、Maven的简单应用
(一)通过myeclipse运用maven
方法如下:
1、创建maven工程,新建project,右键选择New Project,勾选快速创建选项,这个选项可以快速创建简单的maven工程。
2、项目创建成功后,项目目录主要有:主代码目录、主资源目录、测试代码目录、测试资源目录、输出目录(代码编译存放的目录)。
3、添加项目依赖,查找项目依赖通常有两种方式:1. 直接在eclipse上查找,2. 在私服nexus上查找再复制依赖信息到pom.xml中。在eclipse中查找右键项目或pom.xml,输入关键信息查找,选中要引入的构件,点OK就可以自动引入。
(关于私服nexus:这个私服nexus主要用于一些没有开通外网的公司,只有局域网,我们就可以在一台有外网的电脑上搞上个私服nexus,需要的jar包之类的东西就从这台电脑上获取了,方便了我们日常的开发,提高了开发的效率。)
4、在nexus中查找依赖,打开nexus输入关键信息点击查找按钮,在搜索结果中找到对应的jar包,复制右下角的那段信息到pom.xml的dependencies下,如图所示。
5、在MyEclipse上运行mvn命令,右键项目选择Run As--》Maven clean。mvn命令有很多,简单说明下比较常用的命令:
1. clean 用于清理输出目录target/
2. compile用于编译项目主代码
3. test 用于编译运行测试代码
4. package 接受编译好的代码,打包成可发布的模式
5. install 将包安装到maven本地仓库
6. Deploy将最终的包复制到远程仓库
6、执行以上命令时,clean是不会自动执行的,因为clean和其他5个命令是不同的生命周期,因此需要使用组合命令。
7、在MyEclipse中运行组合命令,右键项目选择Run As--》Maven build...
前面介绍了怎么运行一些命令,现在讲下怎么样运行实例。在主代码目录和测试目录上添加代码。
8、运行命令clean install,运行结果如图所示,从结果可以看到,命令运行成功,运行了一次测试并且运行通过,同时,将jar打包到项目的target目录下,也安装到maven的的本地仓库上了。
9、将jar包部署到私服nexus上,在pom.xml中添加一些配置,最后发布运行命令
clean deploy,发布后可以到私服nexus查找有没有刚刚部署的jar包。
(二)用DOS命令操作maven
4.1、Maven项目的目录约定
MavenProjectRoot(项目根目录)
|----src
| |----main
| | |----java ——存放项目的.java文件
| | |----resources ——存放项目资源文件,如spring, hibernate配置文件
| |----test
| | |----java ——存放所有测试.java文件,如JUnit测试类
| | |----resources ——存放项目资源文件,如spring, hibernate配置文件
|----target ——项目输出位置
|----pom.xml ----用于标识该项目是一个Maven项目
4.2、手动创建Maven项目,使用Maven编译
1、创建项目根文件夹,例如Maven01
2、在Maven01文件夹中创建“pom.xml”文件,如下图所示:
pom.xml文件中的内容如下:
1 <?xml version="1.0" encoding="UTF-8"?> 2 <project xmlns="http://maven.apache.org/POM/4.0.0" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 5 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 6 <!--所有的Maven项目都必须配置这四个配置项--> 7 <modelVersion>4.0.0</modelVersion> 8 <!--groupId指的是项目名的项目组,默认就是包名--> 9 <groupId>cn.gacl.maven.hello</groupId> 10 <!--artifactId指的是项目中的某一个模块,默认命名方式是"项目名-模块名"--> 11 <artifactId>hello-first</artifactId> 12 <!--version指的是版本,这里使用的是Maven的快照版本--> 13 <version>SNAPSHOT-0.0.1</version> 14 </project>
3.编写Java类文件,Maven项目规定,所有的*.java文件必须放在src目录下的main目录下的java目录中,在Maven01项目根目录中创建一个src目录,然后在src目录中创建main目录,在main目录中再创建java文件夹,如下图所示:
在java文件夹下创建一个Hello.java文件,如下图所示
在Hello.java文件中编写如下代码:
1 public class Hello{ 2 public static void main(String[] args){ 3 System.out.println("Hello Maven"); 4 } 5 }
4.使用Maven编译Hello.java,首先进入到项目根目录,然后使用命令”mvn compile”进行编译,如下图所示:
使用Maven编译完成之后,在项目根目录下会生成一个target文件夹,如下图所示:
打开target文件夹,可以看到里面有一个classes文件夹,如下图所示:
classes文件夹存放的就是编译成功后生成的.class文件,如下图所示:
5.使用"mvn clean"命令清除编译结果,也就是把编译生成的target文件夹删掉,如下图所示:
执行完"mvn clean"命令后,target文件夹就会被删除了。