基础回顾:apache
maven是一个项目管理工具。tomcat
maven的做用一:依赖管理:maven对项目中的jar包的管理过程。传统项目咱们直接把jar包放置在项目中,maven工厂真正的jar包放置在仓库中,项目中只会放置jar包的坐标。maven
仓库的种类:本地仓库,远程仓库,中介仓库工具
仓库之间的关系:当咱们启动一个maven工厂的时候,maven工程会经过pom文件中的jar包的坐标去本地仓库找对应的jar包。默认状况下,若是本地没有对应的jar包,maven工程会自动去中央仓库下载jar包到本地仓库。在公司中,若是本地没有对应的jar包,会先从私服下载jar包(私服须要公司本身建立),若是私服没有jar包,能够从中央仓库下载,也能够从本地上传。测试
maven的做用二:一键构建:maven自身集成了tomcat插件,能够对项目进行编译,测试,打包,安装,发布等操做,分布对应maven的经常使用命令url
maven经常使用命令:clean,compile,test,package,install,deploy插件
maven三套生命周期:清理生命周期,默认生命周期,站点生命周期。代理
清理生命周期:Clean Lifecycle 在进行真正的构建以前进行一些清理工做code
默认生命周期:Default Lifecycle 构建的核心部分,编辑,测试,打包,部署等等server
站点生命周期:Site Lifecycle 生成项目报告,站点,发布站点
注意:三套生命周期是相互独立的。
maven解决jar包冲突
方式一:第一声明优先原则:哪一个jar包等坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包坐标下的依赖包,能够优先进入项目中。
方式二:直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。传递依赖:项目中没有直接导入jar包,能够经过项目直接依赖的jar包传递到项目中去。路径近者优先原则:直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖jar包
方式三:直接排除:能够经过<exclusions>标签消除传递依赖jar包
工程的拆分和聚合:
拆分思想:maven把一个完整的项目,分红不一样的独立模块,这些模块都有各自独立的坐标,哪一个地方须要其中的模块,就直接引用该模块的坐标便可。
集合思想:把拆分零散的模块聚合到一块儿编写一个完整的项目。
做用;解决代码可重用和便于维护
工程和模块的区别:
一、工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整,就能够说这是一个完整的项目和此项目是工程和模块没有关系。
二、工程天生只能使用本身内部的资源,工程天生是独立的,后天能够和其余工程或模块创建关联关系。模块天生不是独立的,模块天生是属于父工程的,模块一旦建立,全部父工程的资源均可以使用
三、父子工程,子模块天生集成父工程,能够使用父工程全部的资源,子模块之间天生是没有任何关系的。
四、父子工程不用创建关系,继承关系是先天的,不须要手动创建的,平级关系的引用叫依赖,依赖是须要后天创建的。
父子工程启动方式:
第一种:父工程直接run
第二种:先install父工程,在启动下面的模块
第三种:添加本地tomcat启动,添加工程启动
私服:
一、下载安装私服安装包 Nexus https://www.sonatype.com/oss-thank-you-win64.zip
二、配置Nexus,在etc目录下的nexus-default.properties配置Nexus端口、IP、上下文路径
三、启动服务
hosted:宿主仓库(存放本公司开发的jar包(正式版本 测试版本 第三方:存在版权问题的-Oracle))
proxy:代理仓库(代理中央仓库,apache下测试版本的jar包)
group:组仓库(未来链接组仓库。包含Hosted:宿主仓库,proxy:代理仓库)
virtual:虚拟仓库(被废弃了的仓库)
上传Jar包到私服
一、在maven目录下conf/setting.xml配置用户名和密码
<servers> <server> <id>releases</id> <!--宿主仓库--> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id><!--宿主仓库--> <username>admin</username> <password>admin123</password> </server> </servers>
二、在pom.xml中配置jar包的上传路径
<distributionManagement> <repository> <id>releases</id> <url>http://localhost:8081/nexus/repository/maven-releases</url><!--私服对应url--> </repository> <snapshotRepository> <id>snapshots</id> <url>http://localhost:8081/nexus/repository/maven-snapshots</url><!--私服对应url--> </snapshotRepository> </distributionManagement>
从私服下载Jar包
一、在maven目录下conf/setting.xml配置模版
<profile> <!--profile的id--> <id>dev</id> <repositories> <repository> <!--仓库id,repositories能够配置多个仓库,保证id不重复--> <id>nexus</id> <!--仓库地址,即nexus仓库组的地址--> <url>http://localhost:8081/nexus/repository/maven-public</url> <!--是否下载releases构件--> <releases><enabled>true</enabled></releases> <!--是否下载snapshots构件--> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <!--插件仓库,maven的运行依赖插件,也须要从私服下载插件--> <pluginRepository> <!--插件仓库的id不容许重复,若是重复后边配置会覆盖前边--> <id>public</id> <name>Public Repositories</name> <url>http://localhost:8081/nexus/repository/maven-public</url> </pluginRepository> </pluginRepositories> </profile>
二、激活模版,在conf/setting.xml
<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>