(三)、Maven 的基础概念
1.Maven 仓库
用于存储资源,包含各种 jar 包。
中央仓库由Maven开发者团队进行维护,私服服务器由各个公司的局域网进行管理。 正常开发者需要一个Jar现在本地找,假如本地找不到要门去私服下载对应的Jar包,要么去Maven官方管理的Maven中央仓库去下载。
(1).仓库分类
- 本地仓库:自己电脑上存储资源的仓库,连接远程仓库获取资源;
- 远程仓库:非本机电脑上的仓库,为本地仓库提供资源
① 中央仓库:Maven 团队维护,存储所有资源的仓库;
② 私服:部门/公司范围内存储资源的仓库,从中央仓库获取资源;
私服的作用:
① 保存具有版权的资源,包含购买或自主研发的 jar;
② 解决访问速度慢的问题;
2. Maven 坐标
描述仓库中资源的位置。 让Maven能够更快捷的帮助我们找到对应的Jar包。
组成:
groupId (组织ID)
: 定义当前 Maven 项目隶属的组织名称(通常是域名反写,如 org.mybatis) ;
artifactId (项目名ID)
: 定义当前 Maven 项目名称(通常是模块名称,例如 CRM, SMS)
version (项目版本号)
: 定义当前项目版本号;
packaging
: 定义当前项目的版本号;
3.Maven 本地仓库配置
我们安装Maven的时候,官方不会给我们默认指定一个Maven的仓库的,需要我们开发者自己来对其进行配置和安装。
我们在命令控制台中输入 CMD
然后回车 ,再输入mvn
,Maven官方会再电脑用户给我们生成一个 .m2
的文件夹。这个文件夹就是我们所说的Maven本地仓库
(1).改变默认的仓库地址
在下面位置放置我们自定义的 Maven本地仓库地址
<localRepository>E:\Maven\apache-maven-3.6.3\maven-repo</localRepository>
(2).改变远程仓库地址 (配置镜像)
因为我们没有私服,只能借用阿里云的镜像进行快速访问外网Maven中央仓库
<mirror> <!-- 此镜像的唯一标识符,用来区分不同 mirror 元素 --> <id>nexus-aliyun</id> <!-- 对哪个仓库进行镜像,简单来说就是要替换哪个仓库 --> <mirrorOf>*</mirrorOf> <!-- 镜像名称 --> <name>Nexus aliyun</name> <!-- 镜像 URL --> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror> </mirrors
(四)、第一个Maven项目 (纯手写)
1.编写基本框架代码
我们需要手动编写: main包和test包在src父包中,然后分别在main和test的子包中写java包和resources包。
package main.java.com.jsxs; /** * @Author Jsxs * @Date 2023/8/1 16:09 * @PackageName:main.java * @ClassName: Demo1 * @Description: TODO * @Version 1.0 */ public class Demo1 { public static void main(String[] args) { System.out.println("你好 Maven!"); } }
2.填充Pom.xml至项目中
如果我们普通的Java目录想要变成一个Maven项目,那么我们需要在Src同级目录下编写一个文件 pom.xml。
<?xml version="1.0" encoding="UTF-8"?> <!-- Maven根元素 这里面具有三个配置--> <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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- 当前Maven的Pom对象版本 --> <modelVersion>4.0.0</modelVersion> <!--打包方式,web 工程打包为 war, java 工程打包为 jar--> <packaging>war</packaging> <!-- 归属ID--> <groupId>com.jsxs</groupId> <!-- 项目名ID--> <artifactId>Maven_handle</artifactId> <!-- 项目版本号 SNAPSHOT代表开发版 ,RELEASE代表完成版--> <version>0.0.1-SNAPSHOT</version> <!-- 项目名称--> <name>Maven_handle</name> <!-- 项目描述--> <description>Demo project for Maven_handle</description> <!-- 依赖管理--> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </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>
3.Maven 项目构建命令
Maven 构建命令使用 mvn 开头,后面添加功能参数,可以一次执行多个命令,使用空格分隔。
其实这里分别对应着我们SpringBoot项目中的右侧功能栏目。
mvn compile #编译 mvn clean #清理 mvn test #测试 target 目录下 surefire-reports 有测试报告 mvn package #打包 只打包源程序 mvn install #安装到本地仓库
- 执行编译命令之后
- 执行清理的操作
- 执行测试
我们在target目录中可以看到我们的测试结果,都会被记录下来的
- 执行 打包
- 将我们的项目安装到本地仓库
4.使用插件创建Maven项目
(注意要用 命令行,不要用 powershell)
- 创建Java工程
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
- 创建 web 工程:
mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false