maven笔记

Maven

1、maven的作用

  1. 项目依赖管理

  2. 项目一键构建

2、maven的安装与配置

  1. 下载二进制安装包,直接解压

  2. 配置MAVEN_HOME环境变量为安装目录

  3. 在path路径中添加%MAVEN_HOME%\bin即可

  注意:maven依赖java环境,需要确保JAVA的正确安装,并且配置了JAVA_HOME

  在命令行窗口运行mvn -v查看maven是否正确安装

3、maven的仓库

  maven的仓库分为三类,分别为本地仓库,中央仓库,远程仓库,启动一个maven项目,默认从本地仓库找jar包,如果配置了远程仓库,在本地仓库没有的情况下,会从远程仓库中找jar包,如果还是没有则会从中央仓库找jar包。私服是一种特殊的远程仓库,是架设在局域网中的远程仓库,供局域网内的maven用户使用。中央仓库必须在联网的情况下才能使用(非局域网),如果将远程仓库配置在局域网中,则可以在局域网中使用(即非联网情况下使用),即私服,远程仓库也可以配置在互联网中。

  在maven的配置文件settings.xml文件中,默认${user.dir}/.m2/repository为本地仓库的位置,${user.dir}表示windows用户目录,在启动maven项目时,会自动在本地仓库中找相应的jar包,如果是第一次构建maven项目,本地仓库里面为空的,在联网情况下,会自动在中央仓库中下载相应的jar包,放入本地仓库。

  中央仓库中几乎放置了所有开源的jar包,中央仓库的默认位置http://repo1.maven.org/maven2,公司在实际开发中使用到的jar包有限,一般为了在不联网的情况下(局域网),也能正常开发,公司会再创建一个私服,可以通过本地仓库向私服传jar包,也可以从中央仓库向私服下载jar包。

  为了方便管理本地仓库,可以手动设置本地仓库的路径,在settings.xml中的配置

  <localRepository>/path/to/local/repo</loaclRepository>(放在<settings>中)。

4、mave项目标准目录结构

  核心代码、配置文件、测试代码、测试配置文件

  src/main/java目录 放置核心代码

  src/main/resources 放置配置文件

  src/test/java目录 放置测试代码

  src/test/resources 放置测试配置文件

  上面是maven的java项目目录,如果是java-web项目,还有一个目录

  src/main/webapp目录 放置页面资源

5、maven中常见的命令

  进入maven的项目文件中

  mvn clean 删除编译文件(删除target目录)

  mvn compile 编译main目录下的java文件(放置在target目录下)

  mvn test 编译main和test目录下的java文件(放置在target目录下)

  mvn package 编译main和test目录下的java文件并打包(都放置在target目录下)

  默认打成war包,在settings.xml中<package>war<package>中默认配置了<package>

  mvn install编译main和test目录下的java文件并打包,并且将项目放置在了本地仓库

6、maven的生命周期

  maven项目会经历编译(compile)、测试(test)、打包(package)、安装(install)、发布(deploy)过程

  执行后面的过程,前面的过程都会执行一次,这是maven的默认生命周期,还有一套生命周期叫站点生命周期,在实际开发中用得不多。在编译项目之前,需要通过mvn clean命令清理之前的生命周 期,再重新构建。

7、maven的概念模型

 

  项目对象模型(pom.xml):项目自身信息、项目运行所需的jar包信息、项目运行所需的环境信息,包括jdk\tomcat信息

  依赖管理模型(dependencies):从项目运行所需的jar包信息独立出来的,放置的全部都是jar包的坐标,jar包的坐标由三个基本信息组成,groupId(公司组织的名称)、artifactId(项目名)、version(版本号),只能比这个信息多,不能比这个少。

  项目的生命周期:使用 maven 完成项目的构建,项目构建包括:清理、编译、测试、部署等过程,maven 将这些过程规范为一个生命周期。

  一组标准:maven 将整个项目管理过程定义一组标准,比如:通过 maven 构建工程有标准的目录结构,有标准的生命周期阶段、依赖管理有标准的坐标定义等。

  插件(plugin) :maven 管理项目生命周期过程都是基于插件完成的。

8、IDEA集成maven插件

  在IDEA的setting中配置maven的安装目录,maven的settings.xml文件和本地仓库的路径。

 

 

10、maven中央仓库的设置

  来源https://www.cnblogs.com/jpfss/p/11312684.html

  由于网络原因从官方的中央仓库下载jar包困难,可以手动配置下载jar包的位置

  可以将 Maven 的远程仓库统一的配置到 Maven 的 settings.xml 的配置文件中

  <repository>  

     <id>alimaven</id>

      <name>aliyun maven</name>

       <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

  </repository

11、maven构建java-web项目

  在运行maven构建的java-web项目的时候,在写servlet\jsp\测试代码的时候,需要导入相应的sevlet、jsp和junit的jar包,否则会报错,但是maven在运行web项目的时候采用的是自身的tomcat插件,它的lib目录下具有相应的jar包,如果再导入jar包,就会出现jar包冲突的问题,导致web项目无法正常运行,但是在编写代码的时候不导入jar包又会报错。

  看似是个悖论,为了解决该问题可以在pom.xml文件中配置jar包的作用范围,servlet和jsp相关的jar包配置为<scope>provided<scope>,junit的相关jar包配置为<scope>test<scope>。

 

 

 

 

 

 

posted @ 2020-03-21 13:23  wuyiping  阅读(193)  评论(0编辑  收藏  举报