1. 检查mvn版本
2.maven版的helloWorld
工程目录结构:
src
-main
-java
-package
resources
-test
-java
-package
resources
target
classes
pom.xml基本框架(放在项目根目录下)
groupId 项目的包名
artifactId 模块名,建议用项目名
version 版本号 0.0.1SNAPSHOT
dependencies
dependency
mvn compile 编译
mvn test 输出测试
mvn package 生成jar包
3.maven常用构建命令
mvn -v 查看maven版本
compile 编译
test 编译
package 打包
clean 删除target
install 安装jar包到本地仓库中
3.自动创建目录骨架
archetype插件
用于创建符合maven规定的目录骨架
maven规定:main、test
mvn archetype:generate
创建目录的两种方式:
1.archetype:generate 按照提示进行选择
2.archetype:generate
-DgroupId=组织名,公司网址的反写+项目名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所存在的包名
4.maven中的坐标和仓库
坐标:构件
仓库:本地仓库和远程仓库
镜像仓库:国内对国外maven仓库的映射
更改仓库位置:setting.xml中localRepository
5.在eclipse安装maven插件一级创建maven项目
6.完整的项目构建过程包括:
清理、编译、测试、打包、集成测试、验证、部署
maven生命周期:clean、compile、test、package、install
clean 清理项目
pre-clean 执行清理前的工作
clean 清理上一次构建生成的所有文件
post-clean执行清理后的文件
default 构建项目(最核心)
compile test package install
site 生成项目站点(根据pom中的信息自动生成站点)
pre-site 在生成项目站点前要完成的工作
site 生成项目的站点文档
post-site 在生成项目站点后要完成的工作
site-deploy 发布生成的站点到服务器上
(eclipse支持java、c、c++、php等语言的开发)
7.pom.xml常用元素介绍
8.依赖范围
maven三种classpath:编译、测试、运行
dependency scope
compile:默认的范围,编译测试运行都有效,编译和打包时都会把依赖加进去
provider:在编译和测试时有效,最后生成war包时不会加入
runtime:在测试和运行时有效
test:只在测试时有效,在编译和打包时都不会依赖
system:在编译和测试时有效,与本机系统相关联,可移植性差
import:导入的范围,它只使用在dependencyManagement中,表示从其它的pom中导入dependency的配置
9.依赖传递
A依赖B,B依赖C---->A依赖C
A不依赖C,可以在pom.xml中,排除A对C的依赖
<exclusions>
<exclusion>
<groupId></groupId>
<artifactId></artifactId>
</exclusion>
</exclusions>
10.依赖冲突
1.短路优先
A--->B---->C---->X(jar)
A---->D--->X(jar)
2.先声明先优先
如果路径长度相同,则谁先声明,先解析谁
A-->log 1.2.17
B-->log 1.2.9
C-->A.B
C先依赖A,在依赖B
C-->log 1.2.17
11.聚合和继承
聚合:pom.xml增加modules
继承:
<parent>
<groupId>zttc.itat.user</groupId>
<artifactId>user-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!---继承的绝对路径是pom文件--->
<relativePath>../user-parent/pom.xml</relativePath>
</parent>
properties
dependencyManagement
构建web项目
部署时不需要test目录
小结
1.maven下载和环境搭建:环境变量
2.maven目录骨架说明:目录、pom.xml
3.常用的maven命令
mvn:compile
mvn:test
mvn:clean
mvn:instal
mvn:package
4.仓库和坐标
groupId -->com.nakeiven.service(包名)
artifactId-->user-service(模块名)
version-->0.0.1-SNAPSHOT
X.X.X --里程碑-->SNAPSHOT,alpha,beta,Release(RC),GA(正常的,可靠版本)
svn 版本控制
5.在eclipse安装和创建maven项目
6.生命周期,pom.xml以及依赖、聚合、集成
A-->B
C-->A
C-->B 间接依赖
A-->B1
C-->B2
D-->A
D-->C
可以通过exclusion排除依赖冲突