首页 > 代码库 > maven使用
maven使用
一、MAVEN项目的整体概要
1.maven的安装与配置
下载安装包,解压路径不可有中文
2.环境变量的配置
1.前提,需要配置好jdk的JAVA_HOME,将path环境中加入%JAVA_HOME%/bin
2.配置环境变量MAVEN_HOME,加入path中%MAVEN_HOME%/bin
3.通过检查命令mvn -v检测是否安装成功
3.本地仓库的配置
1.本地仓库用于存放从网上下载下来的jar包,相当于一个缓存。
2.本地仓库的位置默认在用户的目录下的.m2/repository下。
3.可以通过配置文件MAVEN_HOME/conf/settings.xml中进行配置
<localrepository>本地路径d:\devolop\maven\repository</localrepository>
4.配置文件User Setting的配置
1.MAVEN的安装目录下有conf/setting.xml配置文件,此配置文件的范围是整个MAVEN,是MAVEN的全局配置文件。
2.maven仓库的地址,私服等配置需要在setting中进行配置。
3.可以使用用户的配置文件,在用户的目录下.m2/setting.xml,针对用户范围有效
5.MAVEN的项目生命周期
MAVEN把整个项目的开发过程的生命周期进行了定义和规范,开发人员通过使用MAVEN软件完成对软件的构建和管理
在eclipse中创建一个MAVEN项目:
1.eclipse中安装相应的插件
2.创建项目,选择骨架,MAVEN中内置了一些常用的骨架,创建简单的项目
3.定义坐标,一个MAVEN项目的坐标通常包含groupid,artifact id,version
4.完成创建,目录一般还需要我们手动添加src/main/resources和src/test/resources制定存放项目的资源如配置文件等。
6.完整的目录结构:
src/main/java -存放项目的Java源码
src/main/resources -存放项目的资源文件,如spring,hibernate的配置文件
src/test/java -存放测试java源文件
src/test/resources -测试依赖的资源文件
maven dependenties -maven工程依赖的jar
src/main -web工程存储的jsp,js文件
target -编译输出目录
pom.xml -定义一个maven项目
7.配置文件pom详细内容
pom即项目对象模型(project object model),pom中包含了四类描述和配置
第一部分,POM RelationShips关系
coordinates坐标:在仓库中唯一标识项目位置的三个参数
<goupid>项目的名称
<artifactid>模块名称
<version>版本号
aggregation聚合(多模块):将项目分解为多个不同的模块
modules
Inheritance 继承:描述了项目之间的继承,实现pom复用
Dependencies依赖:描述了项目运行和编译与另一个项目之间的关系
第二部分,Project Information项目信息
name:项目名称
description:项目的描述
第三部分,Build settings 构建配置
properties: 配置属性
Build:构建项目的插件配置
Packeging: 打包的方式
reporting:报表
第四部分,Build Environment构建环境,描述运行时的依赖,构建和运行
Distribution Management:版本锁定
Profile: 灵活的自定义配置,特定环境下激活
8.MAVEN常用的命令
mvn compile -编译命令,形成class文件保存在target/classes文件下,只编译Java源文件,不编译test
mvn test -测试命令,测试所有的测试用列,重新编译
mvn clean -清理target目录
mvn test -执行单元测试
mvn package 将java项目生打包,具体的打包格式在pom中进行设置。默认生成的包名:artifactid-version.jar/war
mvn install -将工程打包后发布到本地仓库
9.MAVEN项目的生命周期的设定
MAVEN将项目描述为三个生命周期
- clean lifecycle 进行项目构建之前进行清理工作
- default lifecycle 构建的核心部分,编译,测试,打包,部署等
- site lifecycle生成项目报告,站点和发布站点
二、MAVEN中的具体内容分析
1.MAVEN项目中的依赖管理
- 解决的问题
MAVEN提供对项目依赖的第三方插件同意管理,规范jar包依赖和版本信息
- 坐标的管理
1.每一个构件对应一个坐标,在pom中进行定义,包含三个内容,项目的名称、项目的木块、当前项目的版本
2.查找坐标,提供了网站进行关键词查找对应的项目jar,或者通过索引进行获取
- 依赖的添加
1.在pom中定于dependency标签,导入依赖
1 <dependencies> 2 <dependency> 3 <groupId>junit</dependency> 4 <artifactId>junit</artifactId> 5 <version>3.8.1</version> 6 <scope>test</scope> 7 </dependency> 8 </dependencies>
2.依赖范围scope
A依赖B,需要A的pom文件中添加B的坐标,添加坐标的时候需要制定依赖的范围
compile:编译范围,默认范围,编译的时候进行依赖注入打包
provided:当jdk或者容器已经提供了该依赖,在编译和测试时需要,运行是由JDK或者容器提供
runtime: 运行时才需要,如jdbc的驱动包
test:配置此范围的jar只在测试时使用,如junit
system:一般不推荐使用,类似与profided
3.依赖的传递
当p1依赖了p2,p2依赖p3,。。。最终,p1传递依赖了pn的时候,p1对pn的依赖性取决于依赖链中最弱的一环。
4.依赖的版本冲突解决办法
第一声明者优先原则,在pom中谁先声明谁为准的原则
路径近者优先原则A-->version2.1 A-->B-->version1.1 则优先version2.1
5.排除依赖
可以通过排除依赖的方式排除不必要的依赖减少版本冲突
6.锁定版本
直接制定使用的版本,准确简单。
1 <dependencyManagement> 2 <dependencies> 3 <!--这里锁定版本为4.2.4 --> 4 <dependency> 5 <groupId>org.springframework</groupId> 6 <artifactId>spring-beans</artifactId> 7 <version>4.2.4.RELEASE</version> 8 </dependency> 9 </dependencies> 10 </dependencyManagement>
maven使用