这篇文章主要讲解了“Maven的作用有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Maven的作用有哪些”吧!
maven的作用一:依赖管理:maven对项目中的jar包的管理过程。传统项目我们直接把jar包放置在项目中,maven工厂真正的jar包放置在仓库中,项目中只会放置jar包的坐标。
仓库的种类:本地仓库,远程仓库,中介仓库
仓库之间的关系:当我们启动一个maven工厂的时候,maven工程会通过pom文件中的jar包的坐标去本地仓库找对应的jar包。默认情况下,如果本地没有对应的jar包,maven工程会自动去中央仓库下载jar包到本地仓库。在公司中,如果本地没有对应的jar包,会先从私服下载jar包(私服需要公司自己创建),如果私服没有jar包,可以从中央仓库下载,也可以从本地上传。
maven的作用二:一键构建:maven自身集成了tomcat插件,可以对项目进行编译,测试,打包,安装,发布等操作,分布对应maven的常用命令
maven常用命令:clean,compile,test,package,install,deploy
maven三套生命周期:清理生命周期,默认生命周期,站点生命周期。
清理生命周期:Clean Lifecycle 在进行真正的构建之前进行一些清理工作
默认生命周期:Default Lifecycle 构建的核心部分,编辑,测试,打包,部署等等
站点生命周期:Site Lifecycle 生成项目报告,站点,发布站点
注意:三套生命周期是相互独立的。
maven解决jar包冲突
方式一:第一声明优先原则:哪个jar包等坐标在靠上的位置,这个jar包就是先声明的。先声明的jar包坐标下的依赖包,可以优先进入项目中。
方式二:直接依赖:项目中直接导入的jar包,就是该项目的直接依赖包。传递依赖:项目中没有直接导入jar包,可以通过项目直接依赖的jar包传递到项目中去。路径近者优先原则:直接依赖路径比传递依赖路径近,那么最终项目进入的jar包会是路径近的直接依赖jar包
方式三:直接排除:可以通过<exclusions>标签消除传递依赖jar包
工程的拆分和聚合:
拆分思想:maven把一个完整的项目,分成不同的独立模块,这些模块都有各自独立的坐标,哪个地方需要其中的模块,就直接引用该模块的坐标即可。
集合思想:把拆分零散的模块聚合到一起编写一个完整的项目。
作用;解决代码可重用和便于维护
工程和模块的区别:
1、工程不等于完整的项目,模块也不等于完整的项目,一个完整的项目看的是代码,代码完整,就可以说这是一个完整的项目和此项目是工程和模块没有关系。
2、工程天生只能使用自己内部的资源,工程天生是独立的,后天可以和其他工程或模块建立关联关系。模块天生不是独立的,模块天生是属于父工程的,模块一旦创建,所有父工程的资源都可以使用
3、父子工程,子模块天生集成父工程,可以使用父工程所有的资源,子模块之间天生是没有任何关系的。
4、父子工程不用建立关系,继承关系是先天的,不需要手动建立的,平级关系的引用叫依赖,依赖是需要后天建立的。
父子工程启动方式:
第一种:父工程直接run
第二种:先install父工程,在启动下面的模块
第三种:添加本地tomcat启动,添加工程启动
私服:
1、下载安装私服安装包 Nexus https://www.sonatype.com/oss-thank-you-win64.zip
2、配置Nexus,在etc目录下的nexus-default.properties配置Nexus端口、IP、上下文路径
3、启动服务
hosted:宿主仓库(存放本公司开发的jar包(正式版本 测试版本 第三方:存在版权问题的-Oracle))
proxy:代理仓库(代理中央仓库,apache下测试版本的jar包)
group:组仓库(将来连接组仓库。包含Hosted:宿主仓库,proxy:代理仓库)
virtual:虚拟仓库(被废弃了的仓库)
上传Jar包到私服
1、在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>
2、在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包
1、在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>
2、激活模版,在conf/setting.xml
<activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>
感谢各位的阅读,以上就是“Maven的作用有哪些”的内容了,经过本文的学习后,相信大家对Maven的作用有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。