maven(依赖管理,一键构建)
0.仓库有
1)本地创库,
2)私人服务器,
3)中央创库(最大,apache维护)。
1.下载maven官网下载apache-maven-3.6.0-bin.zip,解压到指定
目录。
2.配置环境变量 MAVEN_HOME,path(%MAVEN_HOME%\bin);(前提是配置好jdk)。
3.配置本地创库,在maven中的conf中的pom.xml中设置本地创库的路径。
4.了解maven的目录结构。
5.maven的常用命令。
1)clean
2)test
3)install
6.三套生命周期
1)clean Lifecycle :在进行真正的构建之前进行一些清理工作。
2)Default Lifecycle: 构建的核心部分: 便宜,测试,部署等等。
3)Site Lifecycle:生成项目报告,站点发布站点。
7.使用ecplise配置maven
1)prefences->Maven->installations->add->apache-maven-->勾选maven-->User setting(设置本地创库)-->browse-->apache-Maven-->conf-->setting.xml;
2)windown-->show views-->other->maven-->maven repository--> local repository-->右键 rebulid index
8.调整全局jdk版本
1)右键–》java ee tools–>gernater,自动创建web工程(WEB_INF/web.xml)
2)第一种方法:(局部配置)
a.右键–》maven–>add plugin–>complier–>选择最高版本
b.修改pom.xml(单个项目)
<plugin>
<version>3.1</version>
<configuration>
<!-- 源码版本 -->
<source>1.8</source>
<!-- 编译目标版本 -->
<target>1.8</target>
<!-- 指定编码 -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
第二种方法:(全局配置) 修改apache-maven中conf下的setting.xml,修改对于的jdk版本,和编码(所有)
<profile>
<id>jdk18</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
3)项目中打叉,右键-》maven-》update project;重复几次。
9.导入jar,在pom.xml中
<dependencies>
<dependency>
具体的依赖
<dependencies/>
<dependency/>
10.依赖的作用范围:
1)compile:
2)provide: servlet.jar,jsp.jar
3)test:测试junit
4)runtime:运行与测试
5)system:
12.工程的拆分
1)将一个工程(父工程)拆分为不用的模块,每一个模块都是一个独立的子工程,打成war包.
2)可以有多个工程引用该子工程,出现问题,只需要修改该子工程即可,简化操作。
13.工程的聚合
类似与搭积木,多个子工程组成一个父工程,父工程调用多个子工程。
14.继承的理解
工程的继承,父工程一次继承(在pom.xml写好依赖),子工程都能够继承。
15.新建maven注意事项:
1)父工程:打包方式:pom
2)子工程:打包方式:war(web工程)或jar(java工程)
3)父工程新建子工程(右键-》other->maven models->子工程坐标),子工程指向父工程坐标,依赖传递。
4)子工程之间的调用,需要添加依赖,右键-》maven->add dependency->输入需要引用的子工程的名称。
16.maven的依赖管理:
a.依赖传递:
1)在opm中相关的jar都会自动导入。
2)所有的jar都可以加到父工程中,通过依赖传递的思想
b.依赖传递特性:依赖传递是有范围的。
1)依赖传递的过程中,导致jar包丢失(compile一定可以依赖进来,其他不会),再次导入一次坐标。
c. 依赖管理的两个原则:
1)第一个原则:第一声明者优先(两个相同的jar,但是不同版本)
2)第二个原则:路径近者优先。
d.冲突排除
1)单独完成工程,都需要某个jar,不同工程中可能导入相同但是版本不同的jar.
2)同时完成一个工程时,有两个不同版本的jar,会产出冲突。
3)解决方法:可以在在dependency Hierarchy中右键exclude maven。
e.版本锁定(父工程)
测试用例:不同子工程由不同程序员开发junit.jar不能依赖传递,需要自己依赖,所以需要统一版本。
<dependencyManagement>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
> f.使用版本常量用法
<properties>
<spring.version>5.1.2.RELEASE</spring.version>
<struts.version>2.5.18</struts.version>
<hibernate.version>5.4.0.CR1</hibernate.version>
</properties>