文章目录
Maven 基础
01_Maven概述-[★]
- maven的作用:
- 依赖管理
- 构建项目:管理项目的生命周期
- 分模块开发
02_Maven的仓库-[★★]
仓库的作用:用于存储jar包
仓库的类型:
本地仓库
远程仓库
中央仓库
第三方仓库:阿里云仓库
私服
03_Maven的坐标-[★★]
maven坐标的作用:jar包在仓库的唯一标识.
- 坐标的组成元素
坐标 = groupId + artifactId + version
| 元素名称 | 说明 |
|---|---|
| groupld | 团体,公司,项目的名字,通常它以创建这个项目的组织名称的逆向域名开头。 |
| artifactld | 模块名,在groupld下的表示一个单独模块项目的唯一标识符 |
| version | 一个项目的特定版本。正在开发中的项目可以用“SNAPSHOT”加上一个特殊的标记。 |
- 引入坐标示例
例如:要引入 junit 的 jar 包,只需要在 pom,xml 配置文件中引入 junit 坐标即可
04_Maven的安装和配置-[★★★★★]
能够安装和配置maven,详情参考预习资料文档
05_IDEA绑定本地Maven服务器-[★★★★★]
在idea中配置maven环境需要设置哪些信息:
- 配置maven的主目录:解压的目录
- 关联了maven的配置文件:settings.xml
- 配置maven的本地仓库
- 配置的运行参数:-DarchetypeCatalog=internal
06_使用Maven向导创建JavaWeb工程-[★]
- 实现步骤
- 使用maven向导骨架创建JavaWeb项目
- maven对JavaWeb项目目录结构的要求
- 手动完善JavaWeb的目录结构
- 创建一个Servlet
- 部署项目并运行
- 小结
-
使用maven向导骨架创建项目存在问题:每次都要联网下载数据,耗时。
-
maven对JavaWeb项目目录结构的要求如下图

07_使用插件创建JavaWeb工程-[★★★★★]
- 实现步骤
- 安装插件:JBLJavaToWeb,安装流程参考word文档
- 创建maven项目,不用向导骨架
- 使用插件转换为web项目
- 点击项目同步
- 配置pom.xml,导入servlet依赖
<?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.pkx</groupId>
<artifactId>day36_maven02</artifactId>
<version>1.0-SNAPSHOT</version>
<!--设置当前项目的打包方式:jar或war,默认是jar-->
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
</dependencies>
</project>
- 创建Servlet
@WebServlet(urlPatterns = "/hello")
public class HelloServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置内容类型和编码
response.setContentType("text/html;charset=utf-8");
// 获得字符打印流
PrintWriter out = response.getWriter();
out.println("Hello Maven 01");
}
}
- 部署项目运行
使用插件JBLJavaToWeb创建maven项目的好处:不需要手动完善目录结构,不需要联网下载构建信息
08_Maven项目生命周期概述-[★★]
- 项目生命周期概述
- 什么是项目的生命周期:从编码到项目交付的整个过程
- 生命周期的主要阶段
编码
测试
打包
部署
交付测试
维护
- 生命周期相关命令
| 命令 | 说明 |
|---|---|
| mvn clean | 清除原来的编译结果 |
| mvn compile | 编译,但没有编译测试文件夹 |
| mvn test | 运行测试代码 |
| mvn package | 打包项目 |
| mvn install | 将项目打包并安装到本地仓库 |
| mvn depoly | 发布到本地仓库或服务器 |
Maven管理项目生命周期过程都是基于插件完成的,如果在pom.xml中配置了plugin插件,则使用配置的插件版本。如果没有配置,则使用Maven默认的插件版本,默认的插件版本更低一些。
09_Maven项目生命周期常用命令-[★★★★★]
命令使用方式
-
在IDEA中使用内置maven工具操作
-
在DOS命令行中使用
常用命令演示
- clean
清除编译结果:删除target目录
- complie
编译main目录下的文件:不会编译test目录下的文件
- complie
编译main目录下的文件:不会编译test目录下的文件
- test
运行test目录下的测试类中的测试方法
- package
根据pom.xml配置的打包类型进行打包
- install
打包项目并将包安装到本地仓库:其他项目就可以通过本地仓库引入包
注意事项
test命令注意事项:测试类名必须以Test开头或Test结尾
install命令注意事项:项目必须有web.xml配置文件,如果没有web.xml文件则需要在pom.xml文件中配置如下信息:
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
| 常用命令 | 说明 |
|---|---|
| mvn clean | 删除target目录 |
| mvn compile | 编译main目录下的源文件,test目录下不会编译 |
| mvn test | 编译test目录源文件并执行测试类的测试方法 测试类名必须以Test开头或Test结尾 |
| mvn package | 根据pom.xml配置的格式进行项目打包 |
| mvn install | 打包项目并安装本地仓库 |
10_Maven自定义jar包演示-[★★★★★]
案例需求
- 在Maven项目中创建一个工具类MyUtils,类中包含静态方法sum(int m,int n)实现两个数相加
- 将工具类打包成jar,安装到本地仓库中。
- 在其他Maven项目使用pom.xml文件引入本地仓库中的jar包
- 创建类使用上面的工具类中的方法
- 实现步骤
- 创建Maven项目:在main/java中创建MyUtils类和sum()方法
/**
* 这是一个很牛逼的数学工具类
*/
public class MyUtils {
public static int sum(int a,int b){
return a + b;
}
}
- 修改pom.xml文件,确认设置了packaging元素为jar,并且修改artifactId和version元素
<?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.pkx</groupId>
<!--项目名-->
<artifactId>myutils</artifactId>
<!--版本-->
<version>1.0</version>
<!--打包类型-->
<packaging>jar</packaging>
<name>day39_01_Java</name>
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
- 双击install打包并且将jar包发布到本地仓库。

- 检查本地仓库有了相应的jar包
- 在另一个web项目中引用刚刚创建的jar包,并且点右边的Maven Projects刷新。
<?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.pkx</groupId>
<artifactId>day36_maven02</artifactId>
<version>1.0-SNAPSHOT</version>
<!--设置当前项目的打包方式:jar或war,默认是jar-->
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<!--依赖范围-->
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<!--引入自定义jar-->
<dependency>
<groupId>com.pkx</groupId>
<artifactId>myutils</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
<properties>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
</project>
- 在web项目的main/java下创建一个类调用sum方法
public class HelloTest {
@Test
public void test01(){
System.out.println("HelloTest...test01..");
System.out.println(MyUtils.sum(1, 2));
}
}
自定义jar包的步骤:
- 指定当前项目的坐标,并且指定打包类型:jar
- 编写类实现功能,使用install命令安装到本地仓库中
- 在另一个项目中,使用坐标导入上面的jar包。
- 在项目中使用类和方法
11_依赖管理之Tomcat7插件依赖-[★★★★★]
- 为什么使用tomcat7插件?
- 快速运行tomcat
- 支持热部署:修改webapp目录下的资源之后不用重新部署即可访问最新数据。
- Maven官方目前只有tomcat7插件,没有提供tomcat8的版本。
配置Tomcat7插件
- 将下面代码复制的pom.xml文件中,作为plugins的子元素。端口号和访问地址可以修改
<build>
<plugins>
<!--Tomcat7插件-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8080</port>
<path>/</path>
<!--Tomcat7使用get提交参数有乱码问题,但该插件通过下面配置解决了参数乱码问题-->
<uriEncoding>UTF-8</uriEncoding>
<server>tomcat7</server>
</configuration>
</plugin>
</plugins>
</build>
配置使用maven启动tomcat


- 使用Maven运行Tomcat

- 控制台输出信息

配置Tomcat7插件的步骤:
- 复制插件代码到pom.xml文件中
- 配置使用maven启动tomcat
12_依赖管理之依赖Jar与依赖范围-[★★]
在maven中只需要导入依赖坐标,无需手动导入jar包就可以引入jar。在pom.xml中使用<dependency>标签引入依赖。
1.1 目标
掌握依赖jar的语法和理解依赖范围
1.2 依赖Jar示例
<dependencies>
<!-- junit的依赖包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!--指定Servlet的依赖包-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
依赖坐标可以通过http://mvnrepository.com/ 在线搜索写法。
1.3 依赖范围
- 上面的依赖jar包有个scope是依赖范围:就是这个jar包在什么情况下起作用或使用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wcqa3OIp-1601638556152)(img/img14.png)]
三种classpath介绍
编译classpath:在main目录下的java代码编译时可用
测试classpath:在test目录下的java代码编译时可用
运行时classpath:在运行的时候可用
- 四种常见依赖范围
| 依赖范围 | 说明 |
|---|---|
| compile | 在任意地方任意时刻都可以使用 |
| provided | 编译和测试时可以,部署之后不使用 |
| runtime | 编译时不使用,运行代码需要使用 |
| test | 测试使用 |
本文详细介绍了Maven的基础知识,包括Maven的作用、仓库类型、坐标概念、安装配置、IDEA的绑定、项目创建方法。重点讲解了Maven的生命周期、常用命令及其在实际开发中的应用,如自定义jar包的创建与使用,以及Tomcat7插件的配置和依赖管理。通过本文,读者将能掌握Maven的核心功能和操作技巧。
2847

被折叠的 条评论
为什么被折叠?



