Java项目管理_Maven

Maven的概述

  1. 擅长管理大型项目
  2. 自动管理你需要的jar包
  3. 自动进行下载我们需要的jar包

Maven是一个用来管理java项目,依赖管理(jar包),项目构建的工具。

Maven概念模型

  1. 项目对象模型(Project Object Model):
    每个maven项目都有一个pom.xml文件,定义工程所依赖的jar包,本工程坐标,打包运行方式。
  2. 依赖管理系统(基础核心):jar包的统一管理 (jar: java rar)
  3. 项目构建:项目生命周期管理:编译,测试,打包,部署,运行。
  4. 一组标准集合。maven有自己标准的工程目录结构,定义坐标有标准。
  5. maven管理项目生命周期过程都是基于插件完成的,例如:开发中使用的tomcat插件。

Maven仓库的概念
本地仓库:相当于缓存
*仓库:由maven团队统一维护的远程仓库
远程仓库(私服)

Maven坐标
包名 groupId:项目组织唯一标识符,实际对应Java的包结构,一般写公司组织名称eg:com.alibaba
类名 artifactId:项目名称
版本 version:定义项目的当前版本

Maven安装配置

  1. 需要配置环境变量:M2_HOME 路径为maven解压包路径
  2. Path编辑在最末添加 %M2_HOME/bin%
  3. setting.xml文件中需要自己修改localrepository的路径(这里自己创建了一个新的空文件夹作为自己的localwarehouse)
  4. 需要更新IntelliJ中 add configuration中maven的general部分。修改maven home directory的路径为maven解压包路径。
  5. 将修改后的setting.xml路径也一并更新。
    可以cmd测试mvn -version 检查环境变量是否配置成功。

集中版本管理:选中版本号后,按 ctrl+alt+v

maven项目图解

Note:建立的java项目module file location不能有中文和空格。
Java项目管理_Maven
Java项目管理_Maven

Maven常用命令

Maven的常用命令

  1. clean 清楚编译产生的target文件夹内容,可以配合相应命令使用:如mvn clean package
  2. compile 将程序编译成class
  3. test 测试命令(在pom文件中可以添加skipTests)
  4. package 打包命令
  5. install 可以把项目下载到本地

更改打包后的文件名:
< finalName>{project.artifactId}< /finalName>

Install命令后地址解析:
Java项目管理_Maven

插件管理

jdk编译版本的插件
Java项目管理_Maven
配置Tomcat插件
Java项目管理_Maven

依赖

导入servlet依赖
由于Tomcat中也有servlet,所以导入servlet坐标依赖时,添加scope为provided,避免错误。
Java项目管理_Maven

依赖范围

依赖强度:compile > provided > runtime > test

Java项目管理_Maven
Java项目管理_Maven

继承

创建父模块,不用写Java代码,删除src文件夹。
指定父工程打包类型:pom
指定依赖:比如:junit, mysql
建立子工程,在parent文件夹下,groupId和父工程一样。
这里就不需要再写父工程指定过的依赖。
Java项目管理_Maven

依赖管理

不做依赖管理时,子工程会继承父工程的一切。

当父工程有1万个依赖,而子工程只需要其中一个时:
父工程加入dependencyManagement
子工程pom文件加入父工程有的jar包,不需要写明版本号
这时候父工程负责管理版本号
如果子工程不想使用父工程的版本,可以直接指名版本号。
Java项目管理_Maven

排除依赖

排除模块1中MySQL的依赖
Java项目管理_Maven
添加exclusion,复制模块1中的mysql依赖粘贴到exclusions中。
Java项目管理_Maven

聚合

在父工程中,modules管理子工程的发布和打包。解决模块之间有依赖,一个个的安装也会很麻烦。

聚合工程
Java项目管理_Maven