首页 > 代码库 > 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将项目描述为三个生命周期

    1. clean lifecycle 进行项目构建之前进行清理工作
    2. default lifecycle 构建的核心部分,编译,测试,打包,部署等
    3. 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>
View Code

  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使用