构建工具 Maven 的使用

构建一个项目所需要的流程如下:

(1)生成源码 (2)从源码中生成文档 (3)编译源码 (4)测试 (5)将源码打包成jar,运行在服务器、仓库或者其他位置。
Apache Maven已经实现了以上的全部功能,并且只需要相关的命令就可以完成相关的功能。


一、Maven的下载安装
下载maven后,解压并放到自己设置目下。

命令:

 tar xzvf apache-maven-3.6.0-bin.tar.gz

sudo mv apache-maven-3.6.0 /usr/local/
Linux
tar 命令将文件夹打包,也能将包解开成文件夹。
选项参数
-c:(create)建立打包文件
-t :查看打包文件的内容含有哪些文件
-x :解打包或解压缩的功能,可以搭配-C(大写)在特定目录解开
-j :通过bzip2的支持进行压缩/解压缩,此时文件最好为*.tar.bz2
-z :通过gzip的支持进行压缩/解压缩,此时文件最好为*.tar.gz
-v :在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f 后面跟处理后文件的全名称(路径+文件名+后缀名)
-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
————————————————
二、然后配置环境变量,打开配置环境变量文件
$ vi /etc/profile
三、再设置环境变量
export M2_HOME=/usr/local/apache-maven-3.6.0
export PATH=$PATH:$M2_HOME/bin
四、就可运行maven命令查看maven安装信息
运行 mvn -v
五、设置Maven的本地仓库,
切换到maven配置文件的目录,打开maven的配置文件settings.xml。
cd /usr/local/apache-maven3.6.0/
vim settings.xml
配置文件中修改本地仓库路径,配置如下:
<localRepository>/path/to/local/repo</localRepository>
六、添加镜像

由于Maven 远程服务器在国外,可以添加阿里云的镜像,这样下载jar包的速度会大大增加

 <!--阿里云镜像-->

<mirrors>
<mirror>
<id>alimaven</id>
<!-- 代表了一个镜像的替代位置,例如central就表示代替官方的中央库 -->
<name>aliyun maven</name>
<!-- 是官方的库地址 -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>

我在Eclipse中新建Maven项目,但是Maven默认使用的版本是1.5的,但是我想使用1.8版本,所以需要制定版本。这里有两类方法:

重要说明:
此处如果指定多个mirrors镜像,镜像只会执行第一个位置mirror。

官网说明如下:http://maven.apache.org/guides/mini/guide-mirror-settings.html

设置多个镜像只会识别第一个镜像下载jar包。配置的多个mirror可以都放着不影响,选取一个镜像下载比较快的放在第一个就行。

Maven的核心概念
Maven的核心是pom文件,Maven的工作过程:

  • 首先读取pom文件
  • 下载依赖jar到本地仓库。Maven命令执行时,首先会检查pom文件的依赖jar,当检测到本地没有安装依赖jar时,会默认从Maven的中央仓库下载依赖jar,如果下载不成功,则该命令执行不会通过。
  • 执行构建的生命周期。
  • 执行构建插件

编写pom文件
groupId、artifactId 和 versionshi 三个标签可以在 Maven 仓库中唯一确定该依赖 jar。groupId代表了公司、组织的名称,一般为公司域名的倒写。artifactId 代表该项目的全局唯一ID,version是版本缺省默认最新发布版本。
build为构建标签,它可以包含plugins(插件)标签
spring-boot-maven-plugin插件,用此插件可以启动 Spring Boot 工程。
Maven构建项目的生命周期
Maven默认定义了构建工程的生命周期,不需要额外引入插件,默认的生命周期包括了23个阶段:

生命周期阶段描述
validate 检查工程配置是否正确,完成构建过程的所有必要信息是否能够获取到。
initialize 初始化构建状态,例如设置属性。
generate-sources 生成编译阶段需要包含的任何源码文件。
process-sources 处理源代码,例如,过滤任何值(filter any value)。
generate-resources 生成工程包中需要包含的资源文件。
process-resources 拷贝和处理资源文件到目的目录中,为打包阶段做准备。
compile 编译工程源码。
process-classes 处理编译生成的文件,例如 Java Class 字节码的加强和优化。
generate-test-sources 生成编译阶段需要包含的任何测试源代码。
process-test-sources 处理测试源代码,例如,过滤任何值(filter any values)。
test-compile 编译测试源代码到测试目的目录。
process-test-classes 处理测试代码文件编译后生成的文件。
test 使用适当的单元测试框架(例如JUnit)运行测试。
prepare-package 在真正打包之前,为准备打包执行任何必要的操作。
package 获取编译后的代码,并按照可发布的格式进行打包,例如 JAR、WAR 或者 EAR 文件。
pre-integration-test 在集成测试执行之前,执行所需的操作。例如,设置所需的环境变量。
integration-test 处理和部署必须的工程包到集成测试能够运行的环境中。
post-integration-test 在集成测试被执行后执行必要的操作。例如,清理环境。
verify 运行检查操作来验证工程包是有效的,并满足质量要求。
install 安装工程包到本地仓库中,该仓库可以作为本地其他工程的依赖。
deploy 拷贝最终的工程包到远程仓库中,以共享给其他开发人员和工程。

常用的Maven命令:

mvn clean 删除工程的target目录下的所有文件
mvn package 将工程打为 jar 包。
mvn package 并不是一个简单的命令,它是由一系列有序的命令构成的,mvn package命令执行过程包含以下6个阶段。
验证
编译代码
处理代码
生成资源文件
生成 jar 包。
测试
mvn package -Dmaven.test.skip=true,打包时跳过测试
mvn compile 编译工程代码,不生成 jar 包。
mvn install 命令包含了mvn package 的所有工程,并且将生成的jar包安装到本地仓库。
mvn spring-boot:run 使用spring-boot 插件,启动Spring Boot 工程。该命令执行时先检查Spring boot工程源码是否编译,如未编译则先编译。
mvn test 测试
mvn idea:idea 生成idea项目
mvn jar:jar 只打jar包。
mvn validate 检验资源是否可用。


参考原文链接:https://blog.csdn.net/www1056481167/article/details/60139851

https://www.cnblogs.com/c1024/p/11011995.html

源码,是痛苦的,又是快乐的,如果没有这痛苦,也就没有了这快乐!
原文地址:https://www.cnblogs.com/erlongxizhu-03/p/12114311.html