Maven学习(二)

1、Maven坐标 (Coordinates)

     1.1   Maven通过坐标来精确定位一个项目。Maven坐标通常用冒号来作为分隔符来书写,像这样的格式:groupId:artifactId:packaging:version。 在pom.xml文件中,它的坐标可以表示为mavenbook:my-app:jar:1.0-SNAPSHOT. 这个符号也适用于项目依赖,我们的项目依赖JUnit的3.8.1版本,它包含了一个 对junit:junit:jar:3.8.1的依赖。

<groupId>com.xbox</groupId>
<artifactId>xbox</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
  •  groupId   团体,公司,小组,组织,项目,或者其它团体。团体标识的约定是,它以创 建这个项目的组织名称的逆向域名(reverse domain name)开头。来自Sonatype 的项目有一个以com.sonatype开头的groupId,而Apache Software的项目有以 org.apache开头的groupId。
  • artifactId  在groupId下的表示一个单独项目的唯一标识符。
  • version  一个项目的特定版本。发布的项目有一个固定的版本标识来指向该项目的某一个 特定的版本。而正在开发中的项目可以用一个特殊的标识,这种标识给版本加上 一个“SNAPSHOT”的标记。
  • packaging 项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个 JAR文件,类型为war的项目产生一个web应用。项目的打包格式也是Maven坐标的重要组成部分,但是它不是项目唯一标识符的一个部 分。一个项目的groupId:artifactId:version使之成为一个独一无二的项目;你不能同时有一个拥有同样的groupId, artifactId和version标识的项目。

1.2  Maven仓库的标准是按照下面的目录格式来存储构件,相对于仓库的根目录:

   /<groupId>/<artifactId>/<version>/<artifactId>-<version>.<packaging>

   /log4j/log4j/1.2.14/log4j-1.2.14.jar


2、优化和重构POM

 2.1   多个模块共用的依赖:将其移动到父POM的<dependencyManagement><dependencies>

 2.2   同个pom中依赖版本重复:<properties>创建属性:

2.3  兄弟之间的依赖:

(1)、将它们移到父项目的dependencyManagement中,在最顶层的父项目中定义所有兄弟项目的版本

 (2)、使用内建属性org.sonatype.mavenbook和0.6-SNAPSHOT来 解决这个版本问题。由于它们是兄弟依赖,在父项目中枚举它们也不能获得更多的价 值,因此我们依赖于内置的0.6- SNAPSHOT属性。

2.4   为了降低依赖重复而完成的两项优化:

    上移共同的依赖至dependencyManagement 

如果多于一个项目依赖于一个特定的依赖,你可以在dependencyManagement中 列出这个依赖。父POM包含一个版本和一组排除配置,所有的子POM需要使用groupId和artifactId引用这个依赖。如果依赖已经在dependencyManagement中列出,子项目可以忽略版本和排除配置。

   为兄弟项目使用内置的项目version和groupId 

使用{project.version}和org.sonatype.mavenbook来引用兄弟项目。兄弟项目基本上一直共享同样的groupId,也基本上一直共享同样的发布版本。使用0.6SNAPSHOT可以帮你避免前面提到的兄弟版本不一致问题。

3、Maven仓库分类

   本地仓库:默认在~/user/.../m2/repository/目录下。 在settings.xml文件的<localRepository>F:\Temp\Maven\repository</localRepository> 可以修改本地仓库地址。

远程仓库:又分为

(1)中央仓库:maven在安装的时候,自带的就是中央仓库的配置

(2)私服:nuxus

(3)其它公共库:阿里镜像

仓库检索顺序:当我们在项目中依赖一个jar包时,Maven程序会先去本地仓库中找,如果没找到就回去私服找,如果还是没有,最后就回去中央仓库找。

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值