Maven的基本概念
一、依赖管理和一键构建
- Maven是一个项目管理工具,具备两大功能。
- Maven项目中jar包不在项目中,位于Jar包仓库中,项目中通过jar包坐标来确定引用jar包(Jar包只需要一份并提供给多个项目使用);
- 依赖管理:Maven项目对jar包的管理过程,Maven项目中设置pom.xml只需要jar包坐标。
- 一件构建:Maven自身集成了tomcat插件,可以对项目进行编译,测试,打包,发布等一系列操作。
二、仓库的种类及其关系
- 本地仓库,是自己电脑本地设置的仓库
- 远程仓库,是同公司或组织设置的仓库便于不同电脑都使用同一个仓库,又称为私服
- 中央仓库,是Apache组织维护的所有开源的仓库
三、Maven的生命周期
Maven的生命周期,后面的命令会执行将前面的生命周期中所有的命令都执行一次。
四、Maven的概念模型
五、Maven更改运行环境
Maven自身已经集成了Tomcat插件,因此可以打包成war或jar包来运行。但是因为有时Tomcat版本环境需要改变因此需要做一些配置上得更改。有时需要更改变异的JDK版本,所以也需要设置。
<!--配置Tomcat的版本,端口号等-->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<port>8888</port>
</configuration>
</plugin>
<!--配置编译的JDK版本-->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--配置编译的JDK版本Maven插件-->
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
六、Maven导入jar包冲突问题
按照3种原则来进行解决,有:第一声明原则、路径优先原则、直接排除法【推荐】。网上有很多的Blog,我也收藏了一篇笔记值得参考一下,传送门在此。
七、工程与模块的关系及继承和依赖的区别
- 工程与模块的区别:
工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整,就可以说这是一个完整的项目和此项目是工程或模块没有关系。 - 工程天生只能使用自己的内部资源,工程天生就是独立的,后天可以和其他工程或模块建立关联关系。
模块天生不是独立的,模块天生属于父工程,可以使用父工程的所有资源。 - 父子工程之间,子模块天生继承父工程,可以使用父工程的所有资源。
- 父子工程之间不用建立关系,继承关系是天生的,不需要手动建立。
- 平级直接的引用叫依赖,依赖不是先天的,依赖是需要后天建立的。
八、传递依赖下的jar包是否能用
九、Maven远程仓库(私服)的安装和启用
- 安装需要下载nexus这个软件,具体需要百度。查看第15-16集
- 其中将自己的jar包上传到私服,有2个地方需要配置,Maven的setting文件<server>release和snapshot需要配置,需要上传的Maven项目需要设置pom的<distributionManagement>release和snapshot需要配置。然后Deploy。
- 其中其他人下载我的jar包从私服到本地,也需要另行配置,Maven的setting文件<profile>、<activeProfile>需要配置。后面本地没有就会去私服下载。
十、安装第三方jar包到本地仓库(localRepository)和远程仓库(remoteRepository私服)
-
安装第三方jar包到本地仓:
- 在本地下载好后到指定包目录执行命令
- 在cmd中执行命令
-
安装第三方jar包到远程仓:
- 在本地下载好后到指定包目录执行命令
- 在cmd中执行命令