• maven 基础整理


    教程

    依赖管理

    IDE设置121

    IntelliJ,Edit Configurations中添加maven,选中 Resolve Workspace artifacts能自动编译依赖模块

    内置命令

    • mvn install 将打好包的文件更新到本地库中 -X 强制重新更新
    • mvn clean 清理生成的文件
    • mvn compile 编译项目
    • mvn test 运行测试
    • mvn site 生成文档
    • mvn validate 验证项目正确性
    • mvn dependency:tree 显示依赖树
    • mvn dependency:list 查看当前项目已解析依赖
    • mvn help:effective-pom 显示当前模块有效pom
    • mvn install -pl test 在test模块执行instal命令

    参数

    -P profile-name 使用某个profile构建

    替换默认中行仓库

    maven安装目录 conf/setting.xml,或者修改用户配置~/.m2/setting.xml

    mirrors加入

    <mirror>
        <id> maven-net-cn</id>
        <name> Maven China Mirror</name>
        <url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
    </mirror>
    

    mirrorOf,表示只为central仓库做镜像,如果想为所有的仓库做镜像那么可以改为:

    <mirrorOf>*</mirrorOf>

    elcipse中需要在maven设置中指定配置

    依赖

    依赖范围

    • compile 编译范围,对编译,测试,运行三种classpath都有效
    • test 只在测试范围classpath有效
    • provided 在编译,测试范围有效,运行时无效
    • runtime 运行时依赖范围,对于测试和运行有效,编译无效,典型例子JDBC驱动实现
    • system 和provided依赖范围一致,但需要通过systemPath制定依赖文件路径

    传递性依赖

    假设A依赖B,B依赖C,B对A为第一直接依赖,C对B为第二直接依赖,C对A为传递性依赖
    传递性依赖在第一直接依赖为compile时,和第二直接依赖一样,其他情况都和第一直接依赖一样
    见下表,竖列是第一直接依赖范围,横列为第二直接依赖

    依赖调解

    • maven依赖调解第一原则:最短路径优先
    • maven依赖调解第二原则:路径一样长的情况,第一声明者优先

    如果有这样的依赖关系A -> B -> C -> X(1.0) A -> D -> X(2.0),2.0的会被使用
    如果路径一样长,第一声明的优先使用

    可选依赖

    optional属性,含有optional的组件,被依赖时,optional的组件不会被传递,比如组件支持多个jdbc数据源,但使用时只用一个
    一般情况不应该使用可选依赖,应该新建多个artifact,实现不同数据源的支持

    依赖编译

    -am --also-make 同时构建所列模块的依赖模块
    -amd -also-make-dependents 同时构建依赖于所列模块的模块
    -pl --projects <args> 构建指定的模块,模块间用逗号分隔
    -rf -resume-from <args> 从是指定的模块恢复反应堆
     
     
    mvn install -pl mealkey-web -am 编译mealkey-web 模块和依赖模块
    
  • 相关阅读:
    第九章、硬件抽象层:HAL
    第八章、让开发板发出声音:蜂鸣器驱动
    第七章、LED将为我闪烁:控制发光二极管
    第六章、第一个Linux驱动程序:统计单词个数
    第五章、搭建S3C6410开发板的测试环境
    Android深度探索(卷1)HAL与驱动开发
    第三次月考
    第二次月考
    Android深度探索(卷1)HAL与驱动开发
    第六章 集合运算
  • 原文地址:https://www.cnblogs.com/FlyCat/p/5401276.html
Copyright © 2020-2023  润新知