教程

依赖管理

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 模块和依赖模块

maven 基础整理的更多相关文章

  1. maven基础整理

    转载:https://www.cnblogs.com/hzg110/p/6936101.html maven官网:http://maven.apache.org/index.html 一.为什么使用M ...

  2. maven基础知识

    1.maven基础知识 1.1maven坐标 maven坐标通常用冒号作为分割符来书写,像这样的格式:groupId:artifactId:packaging:version.项目包含了junit3. ...

  3. Maven基础

    Maven基础 maven核心内容:依赖管理. Maven是Apache组织的开源项目,是项目构建工具.用来管理jar包之间的相互依赖关系 Maven是一个项目构建和管理的工具,提供了帮助管理,构建, ...

  4. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  5. MySQL基础整理(一)之SQL基础(未完成)

    大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...

  6. maven 基础

    maven安装链接 maven基础命令: 编译命令:mvn compile 测试命令:mvn test 清空命令:mvn clean 打包命令:mvn package 打包命令:mvn install ...

  7. maven管理整理

    maven管理整理 学习了:https://www.imooc.com/learn/443 mvn -v 版本 compile 编译 test 测试 package 打包 clean 删除 insta ...

  8. nutch的一些基础整理

    nutch的一些基础整理 原创 2015年03月22日 18:18:01 标签: nutch / 240 编辑 删除 一.关于配置文件: nutch-default.xml:爬虫的默认配置.在${nu ...

  9. [转帖]nginx基础整理

    nginx基础整理 https://www.cnblogs.com/guigujun/p/6588545.html 目录结构如下: Nginx基础知识 Nginx HTTP服务器的特色及优点 Ngin ...

随机推荐

  1. SELinux Mysql的error-log文件位置的指定

    SELinux下,在配置my.cnf时,必须指定error-log的位置在/var/log/下, 否则error的默认位置为例如 /var/lib/mysql下的tyoyi.server.err文件, ...

  2. JVM——类加载机制

    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验.转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制. 在Java语言中,类型的加载.连接和初始化过 ...

  3. 自定义视图一:扩展现有的视图,添加新的XML属性

    这个系列是老外写的,干货!翻译出来一起学习.如有不妥,不吝赐教! 简介 这个系列详细的介绍了如何穿件Android自定义视图.主要涉及的内容有如何绘制内容,layout和measure的原理,如何继承 ...

  4. centos下安装eclipse-c++

    eclipse-c++ 1)编译器及工具链 yum install gcc gcc-c++ 2)开发工具包(JDK):下载网址:http://www.oracle.com/technetwork/ja ...

  5. 可接受多个值的文件上传字段HTML5新特性

    <input type="file" id="input"  multiple="multiple"> 主要是多了个multip ...

  6. selenium python (二) 元素定位方法

    定位的原则就是:id name class 优先,强烈建议和前端哥哥搞好关系.定位就不是问题:实在不行就xpath和css大部分偶可以定位到. webdriver定位的方法是通过一个By类,By类中有 ...

  7. 让pre标签自动换行示例代码

    pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码.对于技术博客经 ...

  8. Vs2015 win10虚拟机启动问题:无法设置UDP端口 解决方法 合集(转载)

    刚装的vs2015 社区版 出现这个问题,wp8.1和win10m模拟器都无法启动,找了好久找到的解决方案,放这儿供大家参考,免得大家像我一样走弯路: Windows Phone emulator n ...

  9. 11个实用经典的SQL小贴士

    学习工作之余,在没有要解决问题的压力之下,还是建议系统的看看书,对于一些认为没啥用的知识点,也建议去仔细的看看,练练手,说不定什么时候就用到了,到时也好有针对性的去查,不至于盲目的按照自己的思路,重复 ...

  10. 笔记:C语言数据类型在32位与64位机器上的字节数

    读<深入理解计算机系统> 第二章 信息的表示与处理 32位与64位的典型值,单位字节 声明 32位机器 64位机器 char 1 1 short int int 4 4 long int ...