@HUST-SuWB
2017-02-18T07:22:28.000000Z
字数 1063
阅读 297
蘑菇街
略
Maven的仓库分为以下几种:本地仓库、中央仓库、私服以及其他第三方的仓库。
本地仓库,顾名思义即为开发者本机的仓库,默认路径为~/.m2/repository,当然也可以通过配置settings.xml重新指定。
中央仓库,即官方默认的远程仓库,包含了绝大多数流行的开源Java构件。
私服,架构在局域网内的远程仓库,可以加快构建速度,也可以缓解中央仓库的压力,在配置了私服的情况下,会优先去私服下载构建,没有才会去请求中央仓库。
其他第三方仓库,略。
Maven通过setting.xml管理配置,如
server:配置服务器相关信息,如登录用户名密码等。
profiles:制定资源库配置,必配。可以配置多个,用id区分
activeProfiles:选择哪个profile被激活。
Maven通过坐标确定构建在仓库中的位置,坐标由groupId、artifactId等组成,各个部分含义如下。
groupId:定义当前Maven项目隶属的实际项目
artifactId:定义实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀
version:定义Maven项目当前所处的版本,推荐的版本形式:1.0.2-SNAPSHOT,1.0.2.RELEASE,1.0.0中1指大版本,0指小版本,2指bug fix引起的版本升级
packaging:定义Maven项目的打包方式,如pom,jar,war
classifier:用来帮助定义构建输出的一些附属构建。如sources,javadoc
Java项目的依赖管理一直是很困扰新手的问题。其实,对于依赖管理而言,很重要的一点是正确使用dependencyManagement和dependency,其中dependencyManagement定义在主pom中,用于管理所有的依赖,包括依赖的版本。而具体子pom中需要依赖的包则直接在子pom中以dependency申明即可,无需再定义版本。
后续,任何的排包,更新版本等操作,都只要在主pom的dependencyManagement操作。
通常一个项目会有多个Module,包括project-api、project-dao、project-service、project-impl等。这些Module就由主pom管理,最后打包的时候,只需要讲api包打出去给其他人调用即可。