1 基本要点
来源:互联网 发布:淘宝设置优惠价格 编辑:程序博客网 时间:2024/05/16 09:23
1 第3章 Maven使用入门
1.1 pom.xml结构/配置
见附录A
1.2 settings.xml结构/配置
见附录B
1.3 其他:
遇到错误:(请使用 -source 5 或更高版本以启用静态导入声明)
maven的核心compiler插件默认只支持编译Java 1.3,因此需要配置该插件使其支持1.5,加上plugin:
<!--<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
2 第5章 坐标
2.1 maven坐标:
- groupId 必须定义
- artifactId 必须定义
- version 必须定义
- packaging 可选;打包方式,jar还是war,默认是jar
- classifier 不能直接定义;定义附属构件;
2.2 maven test: junit
发送邮件Demo:test_maven.tar.gz,通过mvn clean test测试执行
3 第5章 maven依赖:
3.1 scope种类:
- compile
- test
- provided
- runtime
- system
- import 不会对实际的classpath产生影响,用于dependencyManagement中
3.2 scope与classpath关系
3.3 依赖传递
注:左侧第一列是A,上面第一行是B,A依赖B
3.4 冲突调解法则
- 第一法则:路径最近者优先
- 第二法则:第一声明者优先
4 第6章 仓库
4.1 分类:
- 本地仓库
- 远程仓库
- 中央仓库
- 私服
- 其他项目公共库
4.2 settings.xml配置
......
4.3 依赖解析机制
- A scope是system时,直接从本地文件系统加载;若不是转B;
- B 根据坐标,从本地库寻找;若未找到转C;
- C 若依赖的版本是显式发布的本版构件,则遍历所有远程仓库下载之;否则,转D;
- D 无论依赖RELEASE/LATEST还是SNAPSHOT,则读取远程/groupId/artifactId/maven-metadata.xml,将其与本地仓库对应元数据maven-metadata-local.xml合并,得到最新版本从本地/远程下载之;转E;
- E 对于SNAPSHOT版本而言,如果得到了时间戳格式的,则转为SNAPSHOT格式的名字作为构件名字。
注:我的理解,书上讲的没有彻底看明白
5 第7章 生命周期与插件
5.1 clean周期
5.2 default周期
5.3 site周期
5.4 自定义绑定
plugin节点内嵌execution节点,可以配置执行一个任务
5.5 常用插件
注:标蓝的是用过的
5.6 插件解析
- A pluginRepositories节点配置插件仓库
- B 解析插件的groupId artifactId version
- C 解析插件前缀
5.7 插件目标
列出插件目标命令: mvn help:describe -Dplugin=eclipse
6 项目集成:聚合与集成
1 两者关系:
- 聚合是为了快速构建多个模块项目;集成是为了避免重复
- 它们的packaing都是pom类型
- 一个POM有可能既是聚合,又是父POM供继承
2 Maven核心理念:
Convention Over Configuration 约定优于配置
可以自定义约定,比如<build><sourceDirectory>src/java</sourceDirectory></build>
3 反应堆 Reactor
指的是所有模块组成的一个构建结构
反应堆的构建顺序,不一定是<module>节点的声明顺序
反应堆裁剪是为了有选择的构建某些模块,总不能动不动就构建所有模块吧。反应堆裁剪命令:
- -am 同时构建所列模块的依赖模块
- -amd 同时构建依赖于所列模块的模块
- -pl 构建指定的模块,模块间逗号隔开
- -rf 从指定的模块回复反应堆
7 Maven系统属性
参考:http://www.imxylz.info/wiki/Java/MavenProperties
project.*
引用POM中定义的字段
project.groupId project.version project.artifactId project.name project.description project.build.sourceDirectory源代码目录, 默认src/main/javaproject.build.scriptSourceDirectory脚本源代码目录, 默认src/main/scriptsproject.build.testSourceDirectory测试源代码目录, 默认src/test/javaproject.build.outputDirectory输出目录,默认target/classesproject.build.testOutputDirectory输出目录,默认target/test-classesproject.build.directory输出目录,默认target/project.baseUri完整的项目目录路径project.basedir完整的项目目录路径settings.*
引用settings.xml中定义的变量
settings.localRepository本地仓库路径
env.*
引用环境变量
env.HOME当前用户主目录env.PATH系统执行路径env.JAVA_HOME env.M2_HOMEMaven2的安装路径系统属性
引用System.getProperty()中的属性
java.version
Java Runtime Environment versionjava.vendorJava Runtime Environment vendorjava.vendor.urlJava vendor URLjava.homeJava installation directory java.vm.specification.versionJava Virtual Machine specification versionjava.vm.specification.vendorJava Virtual Machine specification vendorjava.vm.specification.nameJava Virtual Machine specification namejava.vm.versionVirtual Machine implementation versionjava.vm.vendorJava Virtual Machine implementation vendorjava.vm.nameJava Virtual Machine implementation name java.specification.versionJava Runtime Environment specification versionjava.specification.vendorJava Runtime Environment specification vendorjava.specification.nameJava Runtime Environment specification namejava.class.versionJava class format version number java.class.pathJava class pathjava.ext.dirsPath of extension directory or directories os.nameOperating system nameos.archOperating system architectureos.versionOperating system version- 1 基本要点
- python基础要点(1)-基本类型
- 事务处理 基本要点
- log4j 基本使用要点
- C++基本要点
- WPF - 基本要点
- Java容器基本要点
- Andriod测试基本要点
- 流媒体基本要点简述
- LCD12864的基本要点
- 版本兼容---基本要点
- Hibernate知识要点复习-基本环境搭建(1)
- 编写高质量JavaScript代码的基本要点(1)
- 开关电源PCB排版基本要点
- 程序语言基本语法学习要点
- 测试用例基本要点
- Akka框架基本要点介绍
- Java里面final基本要点
- 是否需要创建索引的判定标准
- icmp简单实现
- Linux的版本
- emacs复制粘贴
- 遇到的问题-----网上下载的项目修改代码无效,不能相应的生成相应的页面内容
- 1 基本要点
- 第3章 一个简单的Maven项目
- Word使用技巧
- Hibernate/Spring: failed to lazily initialize - no session or session was closed
- Android开发之日期选择对话框的使用
- LoadIcon
- 守护进程的日记实现
- 基于eclipse的python开发平台的安装配置和代码编写环境主题设置
- putty详细使用说明