Maven安装及入门
一、Maven的安装
找到Maven官网下载。
将压缩包解压到不含空格与空格的路径下。
配置环境变量:
JAVA_HOME : JDK的根目录.
MAVEN_HOME : Maven的根目录.
Path : %JAVE_HOME%/bin %MAVEN_HOME%/bin
配置完成打开cmd控制台,输入 mvn -v 查看安装是否成功。
在Maven/config目录下指定setting中本地仓库,远程仓库的路径。
<localRepository>D:/Develop/maven/repository</localRepository>
将Maven集成到Eclipse中:
1. window/preferences/Maven/installations:
不使用默认的Maven3.3的版本,点击add,找到自己Maven的根目录添加即可
2. window/preferences/Maven/Usersetting:
将User Setting的默认路径修改为Maven/config目录下自己刚刚指定仓库坐标的setting.xml。
也可以将修改后的的setting.xml配置文件复制到默认文件夹 ${user}/,m2/ 目录下。以后更换工作空间就无需指定了。
3. window/show view/other/Maven/Maven Repositories
查看本地仓库是否成功加载,如果有,代表集成成功。
否则,右键点击rebuild index,还不行继续回到第二步设置本地仓库的位置(或重启eclipse)
二、 第一个Maven工程
2.1 Maven工程的目录结构
Maven工程的目录结构规范:
2.2 使用eclipse开发maven项目
2.2.1 创建Maven工程
见图:
如果eclipse没有JaveEE Tools,手动配置。
2.2.2.调整jdk版本
新建Maven项目的jdk版本是1.5,默认情况下,新建的maven工程都使用1.5,我们需要把它改成1.7
打开pom.xml,配置一下编译器参数:
configuration source target encoding
修改了plugin后都需要刷新Maven项目,update Maven
如果想调整全局jdk版本,在settings.xml下配置:(就不需要每次新建项目都配置jdk版本)
<profile>
<id>jdk17</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
<maven.compiler.encoding>utf-8</maven.compiler.encoding>
</properties>
</profile>
2.2.3.配置tomcat,不使用Maven自带的tomcat
运行maven工程,有两种方式来布署我们的工程:
1. 使用我们自己配置的Tomcat server
2. 使用maven带的tomcat插件
用maven的tomcat7插件,需要在pom.xml里的<build><plugins>添加如下代码:
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<!-- 端口 -->
<port>8080</port>
<!-- 访问路径 -->
<path>/helloworld</path>
<!-- 编码 -->
<uriEncoding>utf-8</uriEncoding>
</configuration>
</plugin>
3. update Maven
2.2.4.添加依赖
打开Maven工程的pom.xml文件,Dependencies添加坐标:
保存后查看pom.xml,如下:
需要使用到什么jar包,就在这里添加依赖即可。
添加依赖时注意不同jar包的scope作用域
2.5 运行Maven工程
3.Jar包的作用范围scope属性
添加jar包的坐标时,还可以指定这个jar包将来的作用范围:
compile:
编译范围,A在编译时依赖B,此范围为默认依赖范围。编译范围的依赖会用在编译、测试、运行。由于运行时需要所以编译范围的依赖会被打包。
provided:
provided依赖只有在当JDK或者一个容器未提供该依赖之后才使用,provided依赖在编译和测试时需要,在运行时不需要,比如:servlet api被tomcat容器提供。
runtime:
runtime依赖在运行和测试系统时候需要,但在编译的时候不需要,比如:jdbc的驱动包。由于运行时需要,所以runtime范围的依赖会被打包
test:
test范围依赖 在编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用,比如:junit。
由于运行时不需要,所以test范围依赖不会被打包。
system:
system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中jar文件的路径,需要指定systemPath磁盘路径,system依赖不推荐使用。