阅读 37

你可能不知道的 Maven 使用姿势

依赖原则

  • 间接依赖路径最短优先

  • 项目中依赖了a, d两个jar 其中

    • a-b-c-1.0,
    • d-e-f-c-1.1。
    • 因为a中依赖的c路径更短因此最后使用 1.0版本
  • 申明顺序优先

  • d优先于a声明,最后使用 c 1.1

  • 使用mvn dependency:analyze-only命令用于检测那些声明了但是没被使用的依赖,如有有一些是你自己声明的,那尽量去掉

  • 使用mvn dependency:analyze-duplicate命令用来分析重复定义的依赖,清理那些重复定义的依赖

scope

  • 执行步骤一般为 清理--》编译--〉测试--》报告--〉打包--》部署
  • compiler
  • test
  • provided runtimesystem import

版本

  • snapshot 测试环境使用
  • release 生产环境使用

optional

  • true

  • 例如有A,B两个项目,B依赖于A,A中有一个junit的依赖声明。若A中加上optional 为true,B在依赖A时就不会传递依赖Junit了

常用命令

编译

  • mvn compile

发布到远程仓库

  • mvn deploy

安装到本地

  • mvn install

跳过测试

  • mvn clean install -Dmaven.test.skip=true

更新子模块的版本号

  • mvn -N versions:update-child-modules

查看依赖

  • mvn dependency:tree
  • mvn -Dverbose dependency:tree #详细信息

其他

  • 为了提高国内下载 maven 依赖的速度可以将 settings.xml 中央仓库地址替换为阿里云镜像地址
<mirrors>
    <mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
    </mirror>
  </mirrors>
复制代码
  • 定位 maven依赖冲突除了命令外,还可以借助 IDEA插件 maven helper。

  • 解决的一般策略就是将冲突的版本找到,并决定取舍 使用

文章分类
后端
文章标签