Maven笔记
有些东西不用就忘了.....
【Maven】笔记
A、
1、Maven安装
下载Maven插件: http://maven.apache.org/
2、将下载好的bin文件放到指定的硬盘(如:D盘)下,解压,配置环境变量
3、配置完成进入dos面板,输入mvn -version 出现以下即是安装成功
以上是完成了Maven的安装,并没有配置,比如迁移中央仓库位置(默认在C盘User目录下)一般是需要迁出来
B、
Eclipse的Maven的配置
Eclipse低版本的需要安装插件,大家看本文评论浏览即可,我会写上下载Eclipse的Maven插件地址,
高版本的Eclipse 自带就有Maven插件,比如 Luna,mars版本,自带还有Git插件,所以最好下载高版本。
我用的就是Luna版本,安装插件的话,自己百度,这个问题不大!
1、迁出本地中央仓库的位置
在解压好的apache-maven中找到settings.xml配置文件,看图
打开修改即可
2、将修改完毕的settings.xml文件拷贝一份,然后将Eclipse的Maven默认User Settings指到这个settings.xml配置文件,如图
ok,已经完成迁出本地中央仓库的位置了
3、Eclipse 更改默认的jre,使用的是jdk里面的jre
同时,新建的项目也是使用这个,否则目录结构不正确。
C、
新建Maven项目
这两个可以认为是 JavaEE项目和web项目
1、这里我们就新建JavaEE项目了
2、Maven的几个命令
1、mvn compile 编译
2、mvn clean 清除
3、mvn package 打包
4、mvn install 发布到本地仓库
以上几个命令都是 dos命令
Eclipse 中 Maven插件 直接封装成了 操作指令,大大方便!鼠标右键pom.xml Run As 即可
3、Maven下载架包的地址在国外 ,所以可能会使下载的速度慢,我们也可以找一些稳定的国内的maven repository
找到apache-maven lib maven-model-builder 解压
更改pom.4.0.0.xml文件即可
D、
Maven的特性
1、Maven依赖性
比如,service 依赖 spring spring依赖某个架包 Commons-logging.jar
分模块开发中 service dao controller都是独立开发 ,最后项目合并测试 controller 引入 service架包 即可将dao架包 一并引入
2、Maven依赖遵循 最短路径原则和最先申明原则
3、Maven聚合和继承
新建JavaEE 项目 在pom.xml中 将dao service 进行统一管理(版本...)
1
2
3
4
|
< modules > < module >../orm-dao</ module > < module >../orm-service</ module > </ modules > |
1
2
3
4
5
|
< properties > < spring.version >4.1.7.RELEASE</ spring.version > < junit.version >4.12</ junit.version > < log4j.version >1.2.17</ log4j.version > </ properties > |
父
1
2
3
4
5
|
< dependency > < groupId >log4j</ groupId > < artifactId >log4j</ artifactId > < version >${log4j.version}</ version > </ dependency > |
子
1
2
3
4
|
< dependency > < groupId >log4j</ groupId > < artifactId >log4j</ artifactId > </ dependency > |
ok
4、Maven依赖范围
classpath 分为三种:编译 classpath , 测试 classpath , 运行 classpath
Scope 选项如下:
Compile:编译依赖范围。默认就是 compile。在编译,测试,运行都有效;
Test:测试依赖范围。仅测试有效; 例如 JUnit;
1
2
3
4
5
|
< dependency > < groupId >junit</ groupId > < artifactId >junit</ artifactId > < scope >test</ scope > </ dependency > |
Provided:已提供依赖范围。编译,测试有效,运行时候无效。例如 servlet-api。
1
2
3
4
5
|
< dependency > < groupId >javax.servlet</ groupId > < artifactId >javax.servlet-api</ artifactId > < scope >provided</ scope > </ dependency > |
System:系统依赖范围(了解即可)使用 system 范围的依赖必须通过sytemPath 指定依赖文件的路径。
Import:导入依赖范围(了解即可)使用 dependencyManagement 时候,可以导入依赖配置。