目录
1 下载
2 安装-windows为例
3 配置环境变量
3.1 JAVA_HOME
3.2 MAVEN_HOME
3.3 PATH
3.4 验证
4 MAVEN基础概念
4.1 仓库概念
4.2 坐标概念
4.2.1 打开网址
4.2.2 输入搜索内容junit
4.2.3 找到对应API名称点击
4.2.4 点击对应版本
4.2.5 复制MAVEN坐标
4.3 配置本地仓库
4.3.1 初始默认仓库
4.3.2 修改仓库位置
4.4 远程默认仓库(了解)
4.5 通过修改镜像仓库配置方式提速(必须)
4.6 全局setting与用户setting(了解)
5 MAVEN项目
5.1 手工创建工程
5.1.1 MAVEN工程目录结构
5.1.2 构建命令
5.2 插件创建工程
5.2.1 java工程
5.2.2 web工程
5.3 IDEA创建工程
5.3.1 配置MAVEN
5.3.2 手工创建java项目
5.3.2.1 编译运行(方式一)
5.3.2.2 编译运行(方式二推荐)
5.3.3 原型创建java项目
5.3.4 原型创建web项目
5.3.5 插件
5.3.5.1 配置tomcat7
5.3.5.2 自定义tomcat7的端口
5.3.5.3 做到配置
6 pom注释说明
7 依赖管理
7.1 依赖配置
7.2 依赖传递
7.3 可选依赖
7.4 排除依赖
7.5 依赖范围
8 生命周期与插件
8.1 生命周期
8.1.1 clean 生命周期
8.1.2 default生命周期
8.1.3 site构建生命周期
8.2 插件
前言:Apache Maven是一个(特别是Java编程)项目管理及自动构建工具,由Apache软件基金会所提供。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。本文是学习MAVEN的启蒙
1 下载
打开 官方网址下载页面 MAVEN下载链接网址
2 安装-windows为例
新增文件夹develop,解压下载的文件到当前目录
3 配置环境变量
3.1 JAVA_HOME
略
3.2 MAVEN_HOME
3.3 PATH
3.4 验证
# cmd 执行
mvn
出现下图
4 MAVEN基础概念
4.1 仓库概念
4.2 坐标概念
4.2.1 打开网址
https://mvnrepository.com
4.2.2 输入搜索内容junit
4.2.3 找到对应API名称点击
4.2.4 点击对应版本
4.2.5 复制MAVEN坐标
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>
4.3 配置本地仓库
4.3.1 初始默认仓库
在当前登录PC的用户名目录下有个.m2文件(前提得在cmd输入mvn才会生成)
4.3.2 修改仓库位置
1、在文件夹develop目录下新建一个文件夹repository
2、打开目录D:\develop\apache-maven-3.9.3\conf下的settings.xml
找到下图位置进行修改
3、修改到设置的仓库新位置
4.4 远程默认仓库(了解)
4.5 通过修改镜像仓库配置方式提速(必须)
<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url><mirrorOf>central</mirrorOf>
</mirror>
4.6 全局setting与用户setting(了解)
5 MAVEN项目
5.1 手工创建工程
5.1.1 MAVEN工程目录结构
1、基本目录结构纯手工创建文件夹
2、在project\project-java\src\main\java\ 下创建 com\runa
3、在project\project-java\src\main\java\com\runa新建一个Demo.java文件
package com.runa;public class Demo{public String say(String name){System.out.println("hello " + name);return "hello " + name;}}
4、在project\project-java\src\test\java\ 下创建 com\runa
5、在project\project-java\src\test\java\com\runa新建一个DemoTest.java文件
package com.runa;import org.junit.Test;
import org.junit.Assert;public class DemoTest{@Testpublic void testSay(){Demo d = new Demo();String ret = d.say("maven"); Assert.assertEquals("hello maven",ret);}
}
6、在project\project-java\下创建pom.xml(不要手写)
在D:\develop\apache-maven-3.9.3\lib 使用解压文件随便打开一个jar包,向上,点击查找
复制
粘贴到新建的pom.xml文件当中去
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>project-java</artifactId><version>1.0.0</version><packaging>jar</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version> </dependency></dependencies></project>
5.1.2 构建命令
在project\project-java\目录下(pom.xml所在目录)打开cmd
1、编译
mvn compile
2、到maven仓库查看新增了很多文件
3、当前目录下多了target文件夹
执行下面命令可清理target文件夹(这里可暂时不执行)
mvn clean
4、测试
mvn test
执行成功会新增文件
5、打包
mvn package
在test-classes里面有jar包
6、 安装
mvn install
将打包的jar存储到本地仓库
5.2 插件创建工程
cmd进到此目录
5.2.1 java工程
mvn archetype:generate -DgroupId=com.runa -DartifactId=hellojava -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
5.2.2 web工程
mvn archetype:generate -DgroupId=com.runa -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
5.3 IDEA创建工程
5.3.1 配置MAVEN
1、创建一个空的项目
2、 修改sdk版本
idea-file-project struct进入文件结构---project ---project sdk:[选择你需要切换的版本]【如果没有需要的版本,需要在下面】【Platform Settings】-SDKs 中添加相应的版本
3、修改maven版本
Settings->Build ->Build tools - > maven
4、修改setting.xml配置
5.3.2 手工创建java项目
创建模块
pom.xml添加依赖
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
为test添加package com.runa
上图test下的resources是通过手工添加文件夹的类型变更也可通过这个方式改:
或者到这里加 file-project struct进入文件结构---modules
package com.runa;public class Demo {public String say(String name){System.out.println("hello " + name);return "hello " + name;}
}
package com.runa;import junit.framework.Assert;public class DemoTest {public void testSay(){Demo d = new Demo();String ret = d.say("maven");Assert.assertEquals("hello maven", ret);}
}
5.3.2.1 编译运行(方式一)
点击右侧的MAVEN--->Lifecycle 可执行编译测试等命令
5.3.2.2 编译运行(方式二推荐)
创建编译
可继续再创建clean,区别在Run 那里
5.3.3 原型创建java项目
上图2个箭头是手动创建哪个文件夹自动生成对应类型的(我的idea是2023-01版本)
5.3.4 原型创建web项目
5.3.5 插件
5.3.5.1 配置tomcat7
到坐标库搜索tomcat插件
目前maven3.8.8支持下图 3.9.3不行
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>web01</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>web01 Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><!-- 构建 --><build><!-- 设置插件 --><plugins><!-- 具体插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version></plugin></plugins></build>
</project>
查看插件,如果没有出现点击那个刷新
点击运行上图箭头
上面地址可直接访问
5.3.5.2 自定义tomcat7的端口
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>web01</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>web01 Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><!-- 构建 --><build><!-- 设置插件 --><plugins><!-- 具体插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build>
</project>
5.3.5.3 做到配置
6 pom注释说明
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><!-- 指定pom的模型版本 --><modelVersion>4.0.0</modelVersion><!-- 打包方式, web工程打包未war java工程打包未jar --><packaging>war</packaging><!-- 组织id --><groupId>com.runa</groupId><!-- 项目id 一般项目名称 --><artifactId>web01</artifactId><!-- 版本号release(完成版) snapshot (开发版) --><version>1.0-SNAPSHOT</version><name>web01 Maven Webapp</name><url>http://maven.apache.org</url><!-- 设置工程所有依赖 --><dependencies><!-- 具体依赖 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies><!-- 构建 --><build><!-- 设置插件 --><plugins><!-- 具体插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port><path>/</path></configuration></plugin></plugins></build>
</project>
7 依赖管理
7.1 依赖配置
7.2 依赖传递
将项目web01配置到java02的pom.xml
7.3 可选依赖
7.4 排除依赖
选择你的项目依赖位置
7.5 依赖范围
8 生命周期与插件
8.1 生命周期
8.1.1 clean 生命周期
8.1.2 default生命周期
8.1.3 site构建生命周期
8.2 插件
上官网
build部分,注意打的是test,
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.runa</groupId><artifactId>java01</artifactId><version>1.0-SNAPSHOT</version><properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.12</version></dependency></dependencies><!-- 构建 --><build><!-- 设置插件 --><plugins><!-- 具体插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-source-plugin</artifactId><version>2.2.1</version><executions><execution><goals><goal>jar</goal></goals><phase>generate-test-resources</phase></execution></executions></plugin></plugins></build>
</project>