该笔记基于黑马的 2021-4-22 Maven教程




MVN

仓库:用于存储资源,包含各种jar包
仓库分类:
私服的作用:

什么是坐标?
Maven 坐标的主要注册:
Maven 坐标的作用
Maven 启动后,会自动保存下载的资源到本地仓库
Maven 配置文件位置:
apache-maven-3.8.4\conf\settings.xml

默认位置:
<localRepository>${user.home}/.m2/repository</localRepository>
当前目录位置为登录用户名所在目录下的.m2文件夹中,运行命令 mvn 后会自动生成 .m2 文件夹
自定义位置
<localRepository>D:\maven\repository</localRepository>
当前目录位置为D:\maven\repository文件夹中
因为国外的远程仓库下载较慢,所以可以使用国内的镜像源(比如阿里云的镜像源)
阿里云镜像仓库:
<!-- 远程仓库镜像源(阿里云) -->
<!--配置具体的仓厍的下载镜像-->
<mirror>
<!--此镜像的唯一标识符,用来区分不同的mirror元素-->
<id>alimaven</id>
<!--对哪种仓库进行镜像,简单说就是替代哪个仓库-->
<mirrorOf>central</mirrorOf>
<!--镜像名称-->
<name>aliyun maven</name>
<!--镜像URL-->
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>

直接写在 maven 的 settings.xml 文件中,就是全局 settings

用户settings定义了当前用户的配置
${user.dir} /.m2/settings.xml 目录中
${user.dir} 指 windows 中的用户目录。
<?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.itheima</groupId>
<artifactId>project-java</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
</project>
mvn compile # 编译
mvn clean # 清理
mvn test # 测试
mvn package # 打包
mvn install # 安装到本地仓库
mvn package # 包含一系列过程: validate -->compile-->test-->package Maven 根据pom文件里packaging 的 配置,决定是生成jar文件还是war文件,并放到target目录下。 此 命令 需要在项目 的 根目录 (也就是pom.xml文件所在 的 目录)下运行, Maven 才知道打包哪个项目。
mvn verify # 运行任何检查,验证包是否有效且达到质量标准。 mvn generate-sources 产生应用需要的任何额外的源代码,如xdoclet。 mvn常用命令2 mvn -v 显示版本 mvn help:describe -Dplugin=help 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。
mvn site # 自动生成站点信息
mvn deploy # 命令完成了项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库和远程maven私服仓库
mvn archetype:generate
-DgroupId={project-packaging}
-DartifactId={project-name}
-DarchetypeArtifactId=maven-archetype-quickstart
-DinteractiveMode=false
mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -
DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -
DinteractiveMode=false
mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -
DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -
DinteractiveMode=false

配置:
<dependencies>
<dependency>
<groupId>junit</groupId> <!-- 包名 -->
<artifactId>junit</artifactId> <!-- 名字 -->
<version>4.12</version> <!-- 版本号 -->
</dependency>
</dependencies>
如果报红则稍等一下,因为 idea 在远程仓库下载 jar 包
分别对应每个命令,关于命令上面有详细的 maven 命令以及作用
快捷 Maven 命令可以用来调试 Maven 项目
这里的 org.apache.maven.archetypes:maven-archetype-quickstart 代表 java 项目
web 项目模板:org.apache.cocoon:cocoon-22-archetype-webapp
这里面提供了很多的模板
使用模板创建出来的目录结构如下:
可以手动创建出 resources 目录
在这里面找到对应的 tomcat 坐标 https://mvnrepository.com/
在 pom.xml 中添加
然后在右边就可以找到对应的 tomcat 插件以及命令(run运行)
也可以修改端口号,路径等信息:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<optional>true</optional> <!-- true 或者 false -->
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<exclusions>
<exclusion>
<groupId>org.hamcrest</groupId> <!-- 指定排除的 groupId -->
<artifactId>hamcrest-core</artifactId> <!-- 指定排除的 artifactId -->
</exclusion>
</exclusions>
</dependency>
pre-clean 执行一些需要在clean之前完成的工作
clean 移除所有上一次构建生成的文件
post-clean 执行一些需要在clean之后立刻完成的工作
⚫ pre-site 执行一些需要在生成站点文档之前完成的工作
⚫ site 生成项目的站点文档
⚫ post-site 执行一些需要在生成站点文档之后完成的工作,并且为部署做准备
⚫ site-deploy 将生成的站点文档部署到特定的服务器上
⚫ validate(校验) 校验项目是否正确并且所有必要的信息可以完成项目的构建过程。
⚫ initialize(初始化) 初始化构建状态,比如设置属性值。
⚫ generate-sources(生成源代码) 生成包含在编译阶段中的任何源代码。
⚫ process-sources(处理源代码) 处理源代码,比如说,过滤任意值。
⚫ generate-resources(生成资源文件) 生成将会包含在项目包中的资源文件。
⚫ process-resources (处理资源文件) 复制和处理资源到目标目录,为打包阶段最好准备。
⚫ compile(编译) 编译项目的源代码。
⚫ process-classes(处理类文件) 处理编译生成的文件,比如说对Java class文件做字节码改善优化。
⚫ generate-test-sources(生成测试源代码) 生成包含在编译阶段中的任何测试源代码。
⚫ process-test-sources(处理测试源代码) 处理测试源代码,比如说,过滤任意值。
⚫ generate-test-resources(生成测试资源文件) 为测试创建资源文件。
⚫ process-test-resources(处理测试资源文件) 复制和处理测试资源到目标目录。
⚫ test-compile(编译测试源码) 编译测试源代码到测试目标目录.
⚫ process-test-classes(处理测试类文件) 处理测试源码编译生成的文件。
⚫ test(测试) 使用合适的单元测试框架运行测试(Juint是其中之一)。
⚫ prepare-package(准备打包) 在实际打包之前,执行任何的必要的操作为打包做准备。
⚫ package(打包) 将编译后的代码打包成可分发格式的文件,比如JAR、WAR或者EAR文件。
⚫ pre-integration-test(集成测试前) 在执行集成测试前进行必要的动作。比如说,搭建需要的环境。
⚫ integration-test(集成测试) 处理和部署项目到可以运行集成测试环境中。
⚫ post-integration-test(集成测试后) 在执行集成测试完成后进行必要的动作。比如说,清理集成测试环境。
⚫ verify (验证) 运行任意的检查来验证项目包有效且达到质量标准。
⚫ install(安装) 安装项目包到本地仓库,这样项目包可以用作其他本地项目的依赖。
⚫ deploy(部署) 将最终的项目包复制到远程仓库中与其他开发者和项目共享。
<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>