参考地址:
1.maven常用命令大全(附详细解释),https://blog.youkuaiyun.com/good_good_xiu/article/details/116740333
2.maven常用命令集合(收藏大全),https://zhuanlan.zhihu.com/p/355889432
3.Maven查看插件信息,https://blog.youkuaiyun.com/bugzeroman/article/details/120739886
一、MAVEN常用命令1
1.常用打包命令
mvn clean package -Dmaven.test.skip=true -- 跳过单测打包
mvn clean install -Dmaven.test.skip=true -- 跳过单测打包,并把打好的包上传到本地仓库
mvn clean deploy -Dmaven.test.skip=true -- 跳过单测打包,并把打好的包上传到远程仓库
2.maven命令
mvn -v //查看版本
mvn archetype:create //创建 Maven 项目
mvn compile //编译源代码
mvn test-compile //编译测试代码
mvn test //运行应用程序中的单元测试
mvn site //生成项目相关信息的网站
mvn package //依据项目生成 jar 文件
mvn install //在本地 Repository 中安装 jar
mvn -Dmaven.test.skip=true //忽略测试文档编译
mvn clean //清除目标目录中的生成结果
mvn clean compile //将.java类编译为.class文件
mvn clean package //进行打包
mvn clean test //执行单元测试
mvn clean deploy //部署到版本仓库
mvn clean install //使其他项目使用这个jar,会安装到maven本地仓库中
mvn archetype:generate //创建项目架构
mvn dependency:list //查看已解析依赖
mvn dependency:tree com.xx.xxx //看到依赖树
mvn dependency:analyze //查看依赖的工具
mvn help:system //从中央仓库下载文件至本地仓库
mvn help:active-profiles //查看当前激活的profiles
mvn help:all-profiles //查看所有profiles
mvn help:effective -pom //查看完整的pom信息
3.注意
maven 命令要在IDEA的Terminal窗口执行
执行maven命令需要当前目录有pom依赖,可以用cd命令切换目录
4.打包时注意:
当mvn仓库里缺少jar包,同时又从中央仓库自动下载不下来的时候,就需要自己下载jar包然后放仓库里了,
但是有时候只是简单的把jar和source放仓库的文件夹下,并不管用,这个时候你可以用命令把jar把打进去:
mvn install:install-file -Dfile=D:\xxx.jar -DgroupId=commons-dbcp -DartifactId= commons-dbcp -Dversion= 1.4 -Dpackaging=jar
-Dfile 是存在本地磁盘里jar 的路径,后面的就不用说了吧!install:install-file 看清楚了!!!这个-file跟install是连着的。
mvn dependency:tree命令解决jar包冲突
当项目出现jar包冲突时,用命令mvn dependency:tree 查看依赖情况
mvn dependency:tree 查看依赖树,查看包结构间的依赖
mvn dependency:tree >d:/tmp 把结果输出到文件,
然后再pom.xml文件里排除掉冲突的jar包
二、MVN常用命令2
mvn 命令参数
mvn -v, --version 显示版本信息;
mvn -V, --show-version 显示版本信息后继续执行 Maven 其他目标;
mvn -h, --help 显示帮助信息;
mvn -e, --errors 控制 Maven 的日志级别, 产生执行错误相关消息;
mvn -X, --debug 控制 Maven 的日志级别, 产生执行调试信息;
mvn -q, --quiet 控制 Maven 的日志级别, 仅仅显示错误;
mvn -Pxxx 激活 id 为 xxx 的 profile (如有多个,用逗号隔开);
mvn -Dxxx=yyy 指定 java 全局属性;
mvn -o , --offline 运行 offline 模式, 不联网更新依赖;
mvn -N, --non-recursive 仅在当前项目模块执行命令, 不构建子模块;
mvn -pl, --module_name 在指定模块上执行命令;
mvn -ff, --fail-fast 遇到构建失败就直接退出;
mvn -fn, --fail-never 无论项目结果如何, 构建从不失败;
mvn -fae, --fail-at-end 仅影响构建结果, 允许不受影响的构建继续;
mvn -C, --strict-checksums 如果校验码不匹配的话, 构建失败;
mvn -c, --lax-checksums 如果校验码不匹配的话, 产生告警;
mvn -U 强制更新 snapshot 类型的插件或依赖库 (否则 maven 一天只会更新一次 snapshot 依赖);
mvn -npu, --no-plugin-updates 对任何相关的注册插件, 不进行最新检查 (使用该选项使 Maven 表现出稳定行为,该稳定行为基于本地仓库当前可用的所有插件版本);
mvn -cpu, --check-plugin-updates 对任何相关的注册插件, 强制进行最新检查 (即使项目 POM 里明确规定了 Maven 插件版本, 还是会强制更新);
mvn -up, --update-plugins [mvn -cpu] 的同义词;
mvn -B, --batch-mode 在非交互(批处理)模式下运行 (该模式下, 当 Mven 需要输入时, 它不会停下来接受用户的输入, 而是使用合理的默认值);
mvn -f, --file <file> 强制使用备用的 POM 文件;
mvn -s, --settings <arg> 用户配置文件的备用路径;
mvn -gs, --global-settings <file> 全局配置文件的备用路径;
mvn -emp, --encrypt-master-password <password> 加密主安全密码, 存储到 Maven settings 文件里;
mvn -ep, --encrypt-password <password> 加密服务器密码, 存储到 Maven settings 文件里;
mvn -npr, --no-plugin-registry 对插件版本不使用~/.m2/plugin-registry.xml(插件注册表) 里的配置;
mvn 常用命令
- 创建 Maven 的普通 java 项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=projectName - 创建 Maven 的 Web 项目:
mvn archetype:create
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp - 编译源代码: mvn compile
- 编译测试代码:mvn test-compile
- 运行测试:mvn test
- 产生 site:mvn site
- 打包:mvn package
- 在本地 Repository 中安装 jar:mvn install
- 清除产生的项目:mvn clean
- 生成 eclipse 项目:mvn eclipse:eclipse
- 生成 idea 项目:mvn idea:idea
- 组合使用 goal 命令,如只打包不测试:mvn -Dtest package
- 编译测试的内容:mvn test-compile
- 只打 jar 包: mvn jar:jar
- 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
(-skipping 的灵活运用,当然也可以用于其他组合命令) - 清除 eclipse 的一些系统设置: mvn eclipse:clean
PS:
一般使用情况是这样,首先通过 cvs 或 svn 下载代码到本机,然后执行 mvn eclipse:eclipse 生成 ecllipse 项目文件,然后导入到 eclipse 就行了;修改代码后执行 mvn compile 或 mvn test 检验,也可以下载 eclipse 的 maven 插件。
mvn -version/-v 显示版本信息
mvn archetype:generate 创建 mvn 项目
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app 创建 mvn 项目
mvn package 生成 target 目录,编译、测试代码,生成测试报告,生成 jar/war 文件
mvn jetty:run 运行项目于 jetty 上,
mvn compile 编译
mvn test 编译并测试
mvn clean 清空生成的文件
mvn site 生成项目相关信息的网站
mvn -Dwtpversion=1.0 eclipse:eclipse 生成 Wtp 插件的 Web 项目
mvn -Dwtpversion=1.0 eclipse:clean 清除 Eclipse 项目的配置信息 (Web 项目)
mvn eclipse:eclipse 将项目转化为 Eclipse 项目
在应用程序用使用多个存储库
<repositories>
<repository>
<id>Ibiblio</id>
<name>Ibiblio</name>
<url>http://www.ibiblio.org/maven/</url>
</repository>
<repository>
<id>PlanetMirror</id>
<name>Planet Mirror</name>
<url>http://public.planetmirror.com/pub/maven/</url>
</repository>
</repositories>
现需要将公司内部的jar包上传到私服仓库,供其他同事使用,此时就需要用到mvn deploy:deploy-file命令。命令:
mvn deploy:deploy-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DrepositoryId=maven-repository-inner -Durl=ftp://xxxxxxx/opt/maven/repository/
发布第三方 Jar 到本地库中:
mvn install:install-file -DgroupId=com -DartifactId=client -Dversion=0.1.0 -Dpackaging=jar -Dfile=d:\client-0.1.0.jar -DdownloadSources=true -DdownloadJavadocs=true
mvn -e 显示详细错误 信息.
mvn validate 验证工程是否正确,所有需要的资源是否可用。
mvn test-compile 编译项目测试代码。 。
mvn integration-test 在集成测试可以运行的环境中处理和发布包。
mvn verify 运行任何检查,验证包是否有效且达到质量标准。
mvn generate-sources 产生应用需要的任何额外的源代码,如 xdoclet。
mvn 常用命令 2
mvn -v 显示版本
mvn help:describe -Dplugin=help 使用 help 插件的 describe 目标来输出 Maven Help 插件的信息。
mvn help:describe -Dplugin=help -Dfull 使用 Help 插件输出完整的带有参数的目标列
mvn help:describe -Dplugin=compiler -Dmojo=compile -Dfull 获取单个目标的信息, 设置 mojo 参数和 plugin 参数。此命令列出了 Compiler 插件的 compile 目标的所有信息
mvn help:describe -Dplugin=exec -Dfull 列出所有 Maven Exec 插件可用的目标
mvn help:effective-pom 看这个 “有效的 (effective)”POM,它暴露了 Maven 的默认设置
mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 -DartifactId=simple -DpackageName=org.sonatype.mavenbook 创建 Maven 的普通 java 项目,在命令行使用 Maven Archetype 插件
mvn exec:java -Dexec.mainClass=org.sonatype.mavenbook.weather.Main Exec 插件让我们能够在不往 classpath 载入适当的依赖的情况下,运行这个程序
mvn dependency:resolve 打印出已解决依赖的列表
mvn dependency:tree 打印整个依赖树
mvn install -X 想要查看完整的依赖踪迹,包含那些因为冲突或者其它原因而被拒绝引入的构件,打开 Maven 的调试标记运行
mvn install -Dmaven.test.skip=true 给任何目标添加 maven.test.skip 属性就能跳过测试
mvn install assembly:assembly 构建装配 Maven Assembly 插件是一个用来创建你应用程序特有分发包的插件
mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用
mvn compile 编译你的项目
mvn clean install 删除再编译
mvn hibernate3:hbm2ddl 使用 Hibernate3 插件构造数据库
三、MVN常用命令3
在介绍 Maven 命令之前,需要从认知上理解 Maven 命令的构成。
Maven 命令主要分为两种:
mvn 命令参数:这里涵盖了 mvn 后所有以 - 开头的参数。
mvn 插件命令:其实我们平时使用最多的 clean、package、install 等命令都是 Maven 官方提供的插件,除此之外我们还可以自己编写插件进行扩展。
一、mvn 命令参数
mvn -v, --version 显示版本信息。
mvn -V, --show-version 显示版本信息后继续执行 Maven 其他目标。
mvn -h, --help 显示帮助信息。
mvn -e, --errors 控制 Maven 的日志级别,显示执行错误相关的消息。
mvn -X, --debug 控制 Maven 的日志级别,显示执行调试信息。
mvn -q, --quiet 控制 Maven 的日志级别,仅显示错误信息。
mvn -Pxxx 激活 id 为 xxx 的 profile(如有多个,用逗号隔开)。
mvn -Dxxx=yyy 指定 java 的全局属性。
mvn -o, --offline 运行 offline 模式,不联网更新依赖。
mvn -N, --non-recursive 尽在当前项目模块执行命令,不构建子模块。
mvn -pl, --projects 用于指定要构建的模块列表(英文逗号分隔)。
mvn -ff, --fail-fast 遇到构建失败就直接退出。
mvn -fn, --fail-never 无论项目结果如何,构建从不失败。
mvn -fae, --fail-at-end 仅影响构建结果,允许不受影响的构建继续。
mvn -C, --strict-checksums 如果校验码不匹配的话,构建失败。
mvn -c, --lax-checksums 如果校验码不匹配的话,产生告警。
mvn -U 强制更新 SNAPSHOT 类型的插件或依赖库(否则 Maven 一天只会更新一次 SNAPSHOT 依赖)。
mvn -npu, --no-plugin-updates 对任何相关的注册插件,不进行最新检查(使用该选项使 Maven 表现出稳定的行为,该稳定行为基于本地仓库当前可用的所有插件版本)。
mvn -cpu, --check-plugin-updates 对任何相关的注册插件,强制进行最新检查(即使项目 POM 里明确规定了 Maven 插件版本,还是会强制更新)。
mvn -up, --update-plugins 与 mvn -cpu 作用相同。
mvn -B, --batch-mode 在非交互(批处理)模式下运行(该模式下,当 Maven 需要输入时,它不会停下来接收用户的输入,而是使用合理的默认值)。
mvn -f, --file <file> 强制使用备用的 POM 文件。
mvn -s, --settings <arg> 用户配置文件的备用路径。
mvn -gs, --global-settings <file> 全局配置文件的备用路径。
mvn -emp, --encrypt-master-password <password> 加密主安全密码,存储到 Maven 的 settings 文件里。
mvn -ep, --encrypt-password <password> 加密服务器密码,存储到 Maven 的 settings 文件里。
mvn -npr, --no-plugin-registry 对插件版本不适用 ~/.m2/plugin-registry.xml(插件注册表)里的配置。
二、mvn 插件命令
1.介绍
其实我们平时使用最多的 clean、package、install 等命令都是 Maven 官方提供的插件,除此之外我们还可以自己编写插件进行扩展。
官方插件清单: https://maven.apache.org/plugins/index.html
这里我们主要讲解一下如何查看插件的官方文档,以及常用的插件命令。
2.查看插件的使用文档
Maven 的官方插件主要分为四类:
核心插件
:包括 clean、compiler、deploy、install 等。打包插件
:包括 jar、war、ejb、source 等。报告插件
:包括 javadoc 等。工具插件
:包括 antrun、archetype、dependency、help 等。
查看 Maven 插件的官方文档,这里我们主要用到了工具插件中的 help
插件。
用法:
mvn help:describe -Dplugin=插件名
例如:我想查看 dependency
命令的使用文档:
mvn 命令:
mvn help:describe -Dplugin=dependency
执行结果:
补充: 如果之前没有使用过 help 插件,第一次执行会先进行 Download,时间会长一点,后面就会直接执行了。
3.常用的插件命令
mvn clean:清理项目目录,删除 target 目录和生成的构建文件。
mvn compile:编译源代码,并将编译后的类文件存储在 target 目录中。
mvn test-compile:编译测试代码。
mvn test:运行项目的单元测试。
mvn site:产生 site。
mvn package:打包项目,并将生成的构建文件(例如:JAR、WAR)存储在 target 目录中。
mvn install:安装项目到本地 Maven 仓库,以供其他项目使用。
mvn deploy:将项目部署到远程仓库,例如 Maven 私服。
mvn clean install:清理项目目录并执行安装操作。
mvn clean package:清理项目目录并执行打包操作。
mvn dependency:tree:显示项目的依赖树。
mvn dependency:tree -Dverbose:显示项目的依赖树(包括传递依赖和排除依赖)。
mvn dependency:resolve:解析项目的依赖关系,并下载缺失的依赖项。
mvn archetype:create
-----mvn archetype:create -DgroupId=packageName -DartifactId=projectName:使用 Maven 的 archetype 插件,创建一个 Maven 的普通 java 项目。
----mvn archetype:create -DgroupId=packageName -DartifactId=projectName -DarchetypeArtifactId=maven-archetype-webapp:使用 Maven 的 archetype 插件,创建一个 Maven 的 Web 项目。
mvn archetype:generate:使用 Maven 的 archetype 插件,创建一个新的 Maven 项目结构。
mvn eclipse:eclipse:使用 Maven 的 eclipse 插件,生成 eclipse 项目。
mvn idea:idea:使用 Maven 的 idea 插件,生成 idea 项目。
mvn jar:jar:只打 jar 包。
mvn test -skipping compile -skipping test-compile:跳过源代码的编译和测试代码的编译,运行项目的单元测试。
mvn eclipse:clean:清除 eclipse 的一些系统设置。
mvn help:help:使用 Maven 的 help 插件,显示 Maven 帮助信息。
以上这些命令是 Maven 中最常用的一些命令,可以根据项目需求和具体情况来选择使用。同时,Maven 还提供了许多其他命令和插件,可以根据具体需求进行查阅和使用。你可以通过运行 mvn --help
来获取所有可用的 Maven 命令,去官网插件清单查看所有可用插件。
你idea或者eclipse配置了maven的setting文件地址后,拉取jar包会默认先从本地仓库找,找不到就查看setting文件是否配置了私服仓库,有就去私服仓库找,找不到最后才到中央仓库找,中央仓库一般配置阿里云的。
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com</url>
</mirror>