- Maven项目目录结构
- 一、Maven 命令参数
- 二、Maven常用命令
- 1、
mvn clean
(清理项目生产的临时文件,一般是模块下的target目录) - 2、
mvn package
(项目打包工具,会在模块下的target目录生成jar或war等文件) - 3、
mvn test
(测试命令,或执行src/test/java/下junit的测试用例) - 4、
mvn install
(安装到本地Maven仓库) - 5、
mvn install -X
(追踪依赖的完整轨迹) - 6、
mvn deploy
(发布命令 将打包的文件发布到远程仓库) - 7、
mvn dependency:analyze
(分析依赖关系,用来分析出无用,重复依赖) - 8、
mvn dependency:tree
(打印出项目的整个依赖树) - 9、
mvn dependency:resolve
(查看依赖) - 10、
mvn project-info-reports:dependencies
(生成项目依赖的报表)
- 1、
- 三、其他命令
- 四、Maven命令分类整理
- 五、IDEA中Maven操作
Maven项目目录结构
—P(父工程pom)
— A (子工程 - common)
— B (子工程 - biz 依赖common)
— C (子工程 - Web 依赖B、间接依赖A)
一、Maven 命令参数
-D
传入属性参数 -P
使用pom中指定的配置 -e
显示maven运行出错的信息 -o
离线执行命令,即不去远程仓库更新包 -X
显示maven允许的debug信息 -U
强制去远程参考更新snapshot包
例如 mvn install -Dmaven.test.skip=true -Poracle
其他参数可以通过mvn help
获取
二、Maven常用命令
1、mvn clean
(清理项目生产的临时文件,一般是模块下的target目录)
2、mvn package
(项目打包工具,会在模块下的target目录生成jar或war等文件)
项目打包工具,会在模块下的target目录生成jar或war等文件
3、mvn test
(测试命令,或执行src/test/java/下junit的测试用例)
测试命令,或执行src/test/java/下junit的测试用例
4、mvn install
(安装到本地Maven仓库)
模块安装命令 将打包的的jar/war文件复制到本地仓库中,供其他模块使用 -Dmaven.test.skip=true
跳过测试(同时会跳过test compile)
5、mvn install -X
(追踪依赖的完整轨迹)
6、mvn deploy
(发布命令 将打包的文件发布到远程仓库)
7、mvn dependency:analyze
(分析依赖关系,用来分析出无用,重复依赖)
8、mvn dependency:tree
(打印出项目的整个依赖树)
9、mvn dependency:resolve
(查看依赖)
10、mvn project-info-reports:dependencies
(生成项目依赖的报表)
三、其他命令
下载源码
mvn dependency:sources
下载源码及文档
mvn dependency:sources -DdownloadSources=true -DdownloadJavadocs=true
安装本地jar
mvn install:install-file -Dfile=you.jar -DgroupId=org.csource.fastdfs -DartifactId=fastdfs -Dversion=1.25 -Dpackaging=jar
-Dfile
:本地jar包位置(未安装至本地仓库前的jar包文件位置路径)-DgroupId
:项目名 对应 <groupId>com.jacob</groupId>
-DartifactId
:文件名 对应 <artifactId>jacob</artifactId>
-Dversion
:版本号 对应 <version>1.18</version>
:::danger
注意:执行该命令时需要将Maven的bin目录配置在环境变量。
在PowerShell执行会报错;
在CMD命令窗口执行时使用jar包文件的绝对路径,在任何位置执行都可以,不会有报错。
:::
安装到仓库,跳过测试,跳过文档
mvn install -Dmaven.test.skip=true -Dmaven.javadoc.skip=true
把依赖的jar copy到lib目录
mvn dependency:copy-dependencies -DoutputDirectory=lib
打包时跳过测试
mvn package -DskipTests
SpringBoot项目打包命令
mvn clean package -Dmaven.test.skip=true
四、Maven命令分类整理
构建打包类命令
编译源代码
mvn compile
编译测试代码
mvn test-compile
编译测试代码
mvn test
打包项目
mvn package
清除打包的项目
mvn clean
package、install、deploy等命令常与该命令配合使用。
清除历史打包并重新打包
mvn clean package
清除并install
到本地
mvn clean install
查看当前项目已被解析的依赖
mvn dependency:list
上传到私服
mvn deploy
复杂组合命令
强制检查更新后打包
mvn clean package -U
-U
参数,强制检查更新,防止缓存等原因使用历史依赖,在自动化发布脚本中会经常用到。
打包排除单元测试
mvn clean package -Dmaven.test.skip=true
打包并指定环境
mvn clean package -P test
打包指定子项目和父项目
mvn clean install -pl C -am -Dmaven.test.skip=true
说明:对父工程P、子模块C、以及子模块C依赖的B、A模块执行mvn clean install
操作,涉及到的P、A、B、C模块全部install到本地。
在自动化构建时,通常会用到该组命令,对于基础板块可将install命令换成deploy命令,发布到私服中。
只打包父工程
mvn clean install -N
只打包父工程P,子模块不会执行相关操作。有父子关系的项目构建上传到私服时,往往需要先构建上传父项目(pom项目)。
只打包A工程
mvn clean install -pl A -am
由于A工程不依赖其他模块,因此仅对P和A进行mvn clean install
操作。
被依赖项目打包
mvn clean install -pl A -amd
对父工程P、子模块A以及依赖于A模块的B、C模块执行mvn clean install
操作。使用场景:基础的common模块变更了,通过该命令将依赖common的其他模块也进行重新mvn clean install
操作。
Jar包发布
mvn clean deploy -Dmaven.test.skip=true
上述命令可以对jar包进行打包发布到仓库,同时需要在pom.xml中通过distributionManagement
元素配置要发布的私有仓库地址信息。私有仓库的密码等信息在setting.xml文件中配置。
打包指定setting.xml文件
mvn clean package -s settings.xml
万能的命令
最后,还有一个万能的命令,help命令:mvn -help
或 mvn -h
通过此命令可以查看更多Maven支持的命令操作。
五、IDEA中Maven操作
1、通过Terminal执行命令
打开IDEA的Terminal命令窗口,默认是打开当前项目的根目录,可以直接执行mvn
命令。也可通过cd等命令切换目录进行执行。
该方式的优势是比IDE自动解析、下载jar包依赖要快非常多,而且不容易出现下载一半卡死的状况。
2、Maven图形界面执行
可通过IDEA提供的Maven图形界面执行:
双击对应的命令即可执行。左上角的两个圆圈可以进行jar包依赖的刷新。
禁用单元测试
在执行打包构建时如果不需要执行单元测试,可选择闪电符号。
alt或command选择多个命令同时执行: