mvn -U -B -P -e -X

  • 不要忘了clean: clean能够保证上一次构建的输出不会影响到本次构建。
  • 使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。
  • 使用-U参数: 该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。
  • 使用-e参数:如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。
  • 使用-Dmaven.repo.local参数:如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=/home/juven/ci/foo-repo/这样的参数为每个任务分配本地仓库。
  • 使用-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。
  • -T
    –T1: 线程数,可以并行地构建那些相互间没有依赖关系的模块,充分利用多核CPU资源。
    -T2 使用 2个线程
    -T5 使用 5个线程
    -T 1C
    代表每个CPU核心跑一个工程。
    -Dmaven.test.skip=true
    跳过整个单元测试。
    默认情况下,在构建项目时,Maven将自动运行整个单元测试。 如果任何单元测试失败,它将迫使Maven中止构建过程。 在现实生活中,即使某些案例失败,您可能仍然需要构建项目。
    -Dmaven.compile.fork=true
    1.默认情况下 ,fork 是 false,Maven 使用 运行自己的 jdk (maven 是需要依赖 jdk 存在的) 来进行 compiler , 如果不想使用这个默认的 jvm,就可以通过 fork 来实现。fork 需要消耗更多的资源,以及花费更多的时间进行编译,所以如果开发机器性能不高,也应该 尽量避免 使用这种方式。
    2.-Dmaven.compile.fork=true 使用多线程编译

    -pl
    在指定模块上执行命令
    -am
    表示同时处理选定模块所依赖的模块
     

举例这种报错可能就是依赖问题  需要-U


.java:[64,47] 无法将接口


com.xizhao.feign.api.admin.FeignAdminService中的方法 pageXizhaoOperateLog应用到给定类型; [ERROR] 需要: java.lang.Long,java.lang.String [ERROR] 找到: com.xizhao.feign.dto.XizhaoOperateLogDTO [ERROR] 原因: 实际参数列表和形式参数列表长度不同 [ERROR] -> [Help 1]