1.什么是Maven
Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。
1.1Maven的作用
作用一:
maven主要是用来解决导入java类依赖的jar,编译java项目主要问题。
作用二:
比如之前项目导入jar。是通过copy方式导入项目中,而且还会存在jar之间的依赖和冲突。而maven解决了这些问题,只是网速不好的时候有点麻烦。只需要下载-bin.zip就可以了。
作用三:
jar 包管理,防止jar之间依赖起冲突 。小组之间建立个私服务,大家都用通用 的maven配置文件,不用自己手动去下载jar ,pom文件会自动管理下载好的jar包
作用四:
Maven是基于项目对象模型,可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。Maven能够很方便的帮你管理项目报告,生成站点,管理jar文件,等等。
1.3 安装
在官网下载即可
这里下载的是: apache-maven-3.5.2-bin.zip
- 解压到一个非中文目录
- 环境变量配置M2_HOME(MAVEN_HOME) : 解压的路径 G:\maven\apache-maven-3.5.2
- 配置全局命令 Path : G:\maven\apache-maven-3.5.2\bin
mvn -v : 查看当前maven的版本
注: Maven依赖与JAVA_HOME
bin:存放了 maven 的命令
boot:存放了一些 maven 本身的引导程序,如类加载器等
conf:存放了 maven 的一些配置文件,如 setting.xml 文件
lib:存放了 maven 本身运行所需的一些 jar 包
至此我们的 maven 软件就可以使用了,前提是你的电脑上之前已经安装并配置好了 JDK。
1.4 Maven仓库种类
- 本地仓库
配置本地仓库 :
修改 maven路径下 conf/setting.xml
G:\maven\LocalWarehouse - 中央仓库: 几乎所有的jar包
- 远程仓库(私服)
1.5Maven常用命令
mvn
- mvn -v命令检查 maven 是否安装成功
- clean 清除
- compile 编译 : 编译 main
- test 测试 : 编译 main / test
- package 打包: jar/war pom.xml jar/war
- install 安装: 安装到本地仓库
1.6 Idea 集成 maven
1 打开File>Settings 配置 maven
选择本地 maven 安装目录,指定 maven 安装目录下 conf 文件夹中 settings 配置文件。
confgi – settings ----- 搜索 maven
1.7Maven项目结构
1.8 配置JDK , 配置镜像
JDK : 在 profiles 标签中添加下列代码
<profile>
<id>JDK-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
镜像: 阿里的镜像 , 在 mirrors 标签中添加下列代码
作用: 提高下载速度
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
1.9 创建项目
1.JavaSE Maven项目 不使用模块创建
2.将 JavaSE 项目修改为 WEB项目
2.1. 在 main 下面创建一个 webapp 文件夹
2.2. 配置
3.运行 WEB 项目
3.1. 配置本地 Tomcat
3.2. mvn tomcat:run 命令 (内嵌式Tomcat)
<!--引用依赖-->
<dependencies>
<!--引用servlet-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope><!-- 运行时不需要加载 -->
</dependency>
<!--引用jsp-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
</dependencies>java
<!-- 引用插件 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8989</port>
</configuration>
</plugin>
</plugins>
</build>
2.分模块构建工程
2.1 理解继承和聚合
通常继承和聚合同时使用。
何为继承?
继承是为了消除重复,如果将 dao、service、web 分开创建独立的工程则每个工程的 pom.xml
文件中的内容存在重复,比如:设置编译版本、锁定 spring 的版本的等,可以将这些重复的
配置提取出来在父工程的 pom.xml 中定义。
何为聚合?
项目开发通常是分组分模块开发,每个模块开发完成要运行整个工程需要将每个模块聚合在
一起运行,比如:dao、service、web 三个工程最终会打一个独立的 war 运行。