maven基础-maven的配置与基本使用

1. maven的两大核心

  1.1 依赖管理:对jar包的管理

  1.2 项目构建:项目在编码完成后,对项目进行编译,测试,打包,部署等。

        (如通过命令将web项目部署在tomcat中:进入到项目根目录,输入命令行 mvn tomcat:run)

2. maven安装及配置

  2.1 下载:http://maven.apache.org/download.cgi

  2.2 解压到本地磁盘(注意:解压路径不要带中文,空格)

  2.3 配置环境变量:

    2.3.1 M2_HOME: maven安装根路径

    2.3.2 添加PATH变量: %M2_HOME%/bin

    (前提:因为maven由java开发,所以依赖jdk,要求安装jdk,且配置JAVA_HOME环境变量)

    2.3.3 测试安装成功:

  

3. 仓库类型及配置

  3.1 仓库类型:

如果,程序员本地电脑会有本地仓库,如果某个工程需要test.jar的jar包,首先会先从本地仓库找,如果找到则直接依赖。如果没有,则判断是否配置并连接了私服,如果连接了私服且私服中有jar包,则会从私服下载到本地仓库,并依赖。如果未配置连接私服,则会连接中央仓库,从中央仓库下载到本地仓库并依赖。

  3.2 配置本地仓库

那么,我们的本地仓库如何配置?

打开maven根目录/conf/setting.xml

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--本地存放路径-->
<localRepository>c:/maven/repository</localRepository>

<localRepository>标签中配置的c:/maven/repository就是本地仓库地址

4. maven的标准项目结构(后续介绍如何生成)

5. maven的常用命令(在项目根目录下)

  5.1 首先看一下一个maven基本项目的项目根目录

  5.2 mvn clean:会将项目根目录下的target目录干掉,该目录中包含有.class字节码文件

  5.3 mvn compile:编译,重新生成target目录,目录中包含.class字节码文件等

  5.4 mvn test:执行根目录下 src/test/java 目录下所有XxxTest.java文件中的单元测试方法。(注意:在此过程中,会执行complie操作)

  5.5 mvn package:打包(生成jar包或war包) ,在target目录下生成jar包或war包等。(注意:在此过程中,执行了compile和test操作)

  5.6 mvn install:将项目进行打包,并放入本地仓库,供其它项目使用。(注意:过程中,执行了test,compile和package操作)

6. maven项目生命周期

  6.1 cleanLifeCycle:清理生命周期 clean

  6.2 defaultLifeCycle: 默认生命周期 compile-test-package-install-deploy

  6.3 siteLifeCycle: 站点生命周期 site

三套生命周期,每一套生命周期相互独立,互不影响

7. maven整合Eclipse

  7.1 windows-preference-maven-installations-add:添加本地安装的maven版本

  7.2 windows-preference-maven-userSettings :让eclipse知道maven本地仓库位置

8. 创建maven项目

9. jar包依赖范围

  

如图,我们有两种方式查看jar包的依赖范围,配置文件中,由<scope>标签注明

共有5类:

  compile: 编译,测试,部署到tomcat都会依赖该jar包

  test:仅测试时依赖该jar包

  provided:编译,测试时依赖该jar包

  runtime:测试,编译会依赖该jar包

  system:编译,测试会依赖该jar包

注:默认是compile(即不配置<scope>标签时),常用的是compile和provided

举例:如果我们的web项目中依赖servlet-api,jsp-api这两个jar包,如果设成compile,那么编译测试以及部署到tomcat时都会依赖这两个jar包,但是我们部署的tomcat自身也依赖了servlet-api和jsp-api这两个jar包,此时部署时可能会产生冲突,导致运行失效。所以,这两个jar包,我们一般会选择provided。

猜你喜欢

转载自blog.csdn.net/tca0819/article/details/80615285