- 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(插件注册表)里的配置
-h,--help Display help information
-am,--also-make 构建指定模块,同时构建指定模块依赖的其他模块;
-amd,--also-make-dependents 构建指定模块,同时构建依赖于指定模块的其他模块;
-B,--batch-mode 以批处理(batch)模式运行;
-C,--strict-checksums 检查不通过,则构建失败;(严格检查)
-c,--lax-checksums 检查不通过,则警告;(宽松检查)
-D,--define <arg> Define a system property
-e,--errors 显示详细错误信息
-emp,--encrypt-master-password <arg> Encrypt master security password
-ep,--encrypt-password <arg> Encrypt server password
-f,--file <arg> 使用指定的POM文件替换当前POM文件
-fae,--fail-at-end 最后失败模式:Maven会在构建最后失败(停止)。如果Maven refactor中一个失败了,Maven会继续构建其它项目,并在构建最后报告失败。
-ff,--fail-fast 最快失败模式: 多模块构建时,遇到第一个失败的构建时停止。
-fn,--fail-never 从不失败模式:Maven从来不会为一个失败停止,也不会报告失败。
-gs,--global-settings <arg> 替换全局级别settings.xml文件(Alternate path for the global settings file)
-l,--log-file <arg> 指定输出日志文件
-N,--non-recursive 仅构建当前模块,而不构建子模块(即关闭Reactor功能)。
-nsu,--no-snapshot-updates 强制不更新SNAPSHOT(Suppress SNAPSHOT updates)
-U,--update-snapshots 强制更新releases、snapshots类型的插件或依赖库(否则maven一天只会更新一次snapshot依赖)
-o,--offline 运行offline模式,不联网进行依赖更新
-P,--activate-profiles <arg> 激活指定的profile文件列表(用逗号[,]隔开)
-pl,--projects <arg> 手动选择需要构建的项目,项目间以逗号分隔;A project can be specified by [groupId]:artifactId or by its relative path.
-q,--quiet 安静模式,只输出ERROR
-rf,--resume-from <arg> 从指定的项目(或模块)开始继续构建
-s,--settings <arg> 替换用户级别settings.xml文件(Alternate path for the user settings file)
-T,--threads <arg> Thread count, for instance 2.0C where C is core multiplied
-t,--toolchains <arg> Alternate path for the user toolchains file
-V,--show-version Display version information WITHOUT stopping build
-v,--version Display version information
-X,--debug 输出详细信息,debug模式。
-cpu,--check-plugin-updates 【废弃】,仅为了向后兼容
-npr,--no-plugin-registry 【废弃】,仅为了向后兼容
-npu,--no-plugin-updates 【废弃】,仅为了向后兼容
-up,--update-plugins 【废弃】,仅为了向后兼容
必选的Profile一般配置在settings.xml中,始终激活;
可选的Profile一般配置在pom.xml中,持续集成时,根据不同环境激活不同的Profile;
$ mvn help:active-profiles 列出当前激活的Profile
$ mvn help:all-profiles 列出当前所有的Profile
-
常用命令
命令 描述 mvn clean 清理项目生产的临时文件,一般是模块下的target目录 mvn compile 编译源代码,一般编译模块下的src/main/java目录 mvn package 项目打包工具,会在模块下的target目录生成jar或war等文件 mvn test 测试命令,或执行src/test/java/下junit的测试用例. mvn install 将打包的jar/war文件复制到你的本地仓库中,供其他模块使用 mvn deploy 将打包的文件发布到远程参考,提供其他人员进行下载依赖 mvn site 生成项目相关信息的网站 mvn eclipse:eclipse 将项目转化为Eclipse项目 mvn dependency:tree 打印出项目的整个依赖树 mvn archetype:generate 创建Maven的普通java项目 mvn tomcat:run 在tomcat容器中运行web应用 mvn jetty:run 调用 Jetty 插件的 Run 目标在 Jetty Servlet 容器中启动 web 应用 -
项目开发中需要多个环境(开发、测试、预发布、正式)时,pom.xml的配置
<profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <profile> <id>pre</id> <properties> <env>pre</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> ...... <build> <filters> <filter>config/${env}.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> ...... </build>profiles定义了各个环境的信息,filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值,resources中是定义哪些目录下的文件会被配置文件中定义的变量替换。
通过以下命令可以使mvn按照不同环境进行打包:mvn package -Pdev