-
maven简介
- 项目管理及自动构建工具
- 扩展:gradle、前端npm、webpact
- 小目标:使用maven管理jar包,使用npm管理前端的文件。达到不过还不够熟练
-
maven安装-----看ppt
- 官网下载,bin.zip版本
- 包括镜像的更换,以及在IDE中的配置
-
基本概念
-
生命周期
- maven对构建的过程进行了抽象和定义
- 构建:从源码到成品的过程都可由maven来控制。
- 生命周期(lifecycle)由多个阶段(phase)组成,每个阶段会挂接一到多个goal
- goal为maven中定义任务的最小单元,相当于ant中的target
- 阶段图见ppt
- 启动2-》编译6-》测试7-》打包2-》集成测试3-》安装2-》部署1
- 启动:验证配置是否正确
- 编译:源码编码为class
- 测试:执行单元测试
- 打包:jar、war等便于发布的形式
- 集成测试:与其他系统联合进行测试
- 安装:将jar包安装到本地仓库
- 部署:将jar发布到maven仓库中
- maven对构建的过程进行了抽象和定义
-
创建项目
- 项目的骨架—也就是直接搭建为一个项目,包含一些常用的目录。
mvn archetype:generate ->选archetype (internal:7=quickstart:javase 10=webapp:javaee) ->填groupId\artifactId\version\package ->生成项目 <!--命令行通过-D来指定一些参数。可以不用填写坐标--> mvn archetype:generate -DarchetypeCatalog=internal -DgroupId=me.maiz.build -DartifactId=demo
-
坐标—用来唯一确定一个依赖包
<dependency> <groupId>net.sf.json-lib</groupId> <!--公司,这个也是repo中的目录形式--> <artifactId>json-lib</artifactId><!--项目--> <version>2.4</version><!--版本--> <type>jar</type> <classifier>jdk15</classifier> </dependency> <!--定位到repo net/sf/json-lib/json-lib-2.4-jdk15.jar-->
-
坐标的依赖范围
-
compile:编译时依赖在所有阶段都可获得,默认
-
provided:编译时需要,但不打包中。例如jdk 由外部提供这个环境,而不需要打包到项目中 例如servlet.api 由服务器提供。
-
runtime:运行依赖范围,编译阶段阶段不需要,只有在运行时需要,例如JDBC驱动程序
-
test:测试依赖范围,仅在编译和运行单元测试时需要
-
system:本地依赖,不建议使用
编译时依赖 测试时依赖 运行时依赖 是否打入包 compile Y Y Y Y provided Y Y Y N test N Y N N runtime N Y Y Y
-
-
坐标的依赖传递
-
只有编译依赖范围和运行依赖范围可传递?
-
注意:每一个依赖也会有一个pom.xml,所以可以导入依赖的依赖
-
例子
A->B->C 简单依赖传递: A->C A->B->C(0.1) A->C(0.2) 最短路径优先原则: A->C(0.2) A->B->C(0.1) A->E->C(0.2) 第一声明优先原则:最终依赖C(0.1)
-
-
依赖归类
<properties> <!--***的标签名,这样在下面引用,然后更改版本就十分的方便,在这里更改就行了--> <!--或者保证下面同一系列多个jar包的版本统一--> <spring.version>2.5</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> </dependencies>
-
依赖排除
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final</version> <!--排除下面的依赖--> <exclusions> <exclusion> <artifactId>slf4j-api</artifactId> <groupId>org.slf4j</groupId> </exclusion> </exclusions> </dependency>
-
继承
-
repository
local(本地仓库:自己)->private(私有仓库)->central(中央仓库) local:localRepository in settings.xml private:mirrors in setting.xml central:pulbic repositories in nexus 终极绝招:删库重拉
-
Profile
pass
-
常用命令
mvn clean 清理编译出的文件 结果:删除 target文件 mvn compile 编译 结果:编译java文件到target/classes mvn test 测试 mvn package -Dmaven.test.skip=true 打包并跳过单元测试 java -jar jar包名字运行该jar包 --有时间做一个专题来进行maven安装各类项目并且运行的详细解释 mvn install -Dmaven.test.skip=true 安装并跳过单元测试 mvn archetype:generate 生成项目骨架 mvn dependency:tree 打印依赖树
-
07-17
07-17
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交