1.Maven是一个工具,负责工程整合和依赖管理,工程整合就是工程的搭建,依赖管理实际上就是处理一些列的jar包的引用和相互关系。
2.Maven是Apache开源组织的一个顶级项目,所有的顶级项目都是以项目名称开头(maven.apache.org),要使用Maven首先需要下载:http://maven.apache.org/download.cgi,最新版是3.5.0
3.下载完成之后就需要来进行使用,直接解压缩就可以使用,可以配置一下环境变量
MAVEN_HOME=/usr/local/apache-maven-3.5.0
M2_HOME=/usr/local/apache-maven-3.5.0
在Windows中还可以将maven下的bin目录添加到path
4.实际上就已经不具备了Maven的基本环境,可以负责maven工程的搭建,手动搭建的方式在实际的开发中比较少见,而且比较麻烦,我们需要通过配置eclipse在eclipse中使用maven
现在的EAclipse版本已经集成了maven插件,可以在eclpise中直接接入maven工具,如果进入公司发现eclipse不支持maven可以手动安装maven插件,或者直接更新eclipse
(1)Eclipse的设置中找到maven的installations添加我们下载的maven
(2)需要设置maven的配置文件,maven目录中的setting配置文件是一个模板,我们一般不直接修改,eclipse或者maven本身默认识别一个setting配置文件,/Users/igeekhome/.m2/是maven工具使用的基础目录,需要进行修改
(3)赋值setting.xml文件并进行修改,配置本地仓库<localRepository>/Users/igeekhome/mvn/repo</localRepository>
5.使用maven创建工程
目前使用过的java工程有两种,一种是简单java工程,另一种是动态web工程。使用maven创建工程之初可能会出现问题,问题主要在于网络,在于maven与中央仓库的通信,创建maven工程时需要选择对应的archetype,表示类型或者骨架
5.1创建java工程
从中央仓库下载资源速度较慢,有时候会直接失败,所以我们通常可以设置一个镜像,进行下载,这里我们配置阿里的私服镜像
创建一个quickstart工程
要在工程中添加依赖关系,实际上就是添加使用的jar,可以使用maven工具进行管理,通过dependency中定义的maven坐标来找到对应的jar包,通过maven进行自动关联,不需要手动下载和添加,需要将依赖添加到工程中的POM(工程对象模型)文件,用来描述整个工程
创建的工程都是jdk1.5,maven默认的编译环境是jdk1.5导致的,怎么修改呢?
一个是修改pom配置文件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
另一中就是修改setting配置文件,从maven的源头上解决问题,显然更加合理
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
还需要激活profile配置
<activeProfiles>
<activeProfile>jdk-1.8</activeProfile>
</activeProfiles>
5.2编译和运行
在原来的是使用中,程序的编译都是自动完成的,我们只要通过run as来执行就可以了,但是在maven中程序的编译是需要手动控制的,需要使用maven的几个常用命令
1.clean,就是清空之前编译的内容
2.package,将我们的工程打成对应的包
3.install,安装,表示将jar放入本地仓库
4.deploy,表示将jar包上传给私服