[关闭]
@HUST-SuWB 2017-02-18T07:22:28.000000Z 字数 1063 阅读 297

Maven项目的包管理经验

蘑菇街


安装

仓库

Maven的仓库分为以下几种:本地仓库、中央仓库、私服以及其他第三方的仓库。
本地仓库,顾名思义即为开发者本机的仓库,默认路径为~/.m2/repository,当然也可以通过配置settings.xml重新指定。
中央仓库,即官方默认的远程仓库,包含了绝大多数流行的开源Java构件。
私服,架构在局域网内的远程仓库,可以加快构建速度,也可以缓解中央仓库的压力,在配置了私服的情况下,会优先去私服下载构建,没有才会去请求中央仓库。
其他第三方仓库,略。

配置

Maven通过setting.xml管理配置,如

  1. server:配置服务器相关信息,如登录用户名密码等。
  2. profiles:制定资源库配置,必配。可以配置多个,用id区分
  3. activeProfiles:选择哪个profile被激活。

坐标

Maven通过坐标确定构建在仓库中的位置,坐标由groupId、artifactId等组成,各个部分含义如下。

  1. groupId:定义当前Maven项目隶属的实际项目
  2. artifactId:定义实际项目中的一个Maven项目(模块),推荐的做法是使用实际项目名称作为artifactId的前缀
  3. version:定义Maven项目当前所处的版本,推荐的版本形式:1.0.2-SNAPSHOT1.0.2.RELEASE1.0.01指大版本,0指小版本,2bug fix引起的版本升级
  4. packaging:定义Maven项目的打包方式,如pomjarwar
  5. classifier:用来帮助定义构建输出的一些附属构建。如sourcesjavadoc

依赖管理

Java项目的依赖管理一直是很困扰新手的问题。其实,对于依赖管理而言,很重要的一点是正确使用dependencyManagementdependency,其中dependencyManagement定义在主pom中,用于管理所有的依赖,包括依赖的版本。而具体子pom中需要依赖的包则直接在子pom中以dependency申明即可,无需再定义版本。
后续,任何的排包,更新版本等操作,都只要在主pom的dependencyManagement操作。

项目模块管理

通常一个项目会有多个Module,包括project-apiproject-daoproject-serviceproject-impl等。这些Module就由主pom管理,最后打包的时候,只需要讲api包打出去给其他人调用即可。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注