mvn命令

  1. 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

  1. 常用命令

    命令 描述
    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 应用
  2. 项目开发中需要多个环境(开发、测试、预发布、正式)时,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
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容