`
liu_hliang
  • 浏览: 199356 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

《Maven权威指南》读书笔记(4)

阅读更多
20. 项目版本

    一个Maven项目发布版本号用version编码,用来分组和排序发布。Maven中的版本包含了以下部分:主版本,次版本,增量版本,和限定版本号。一个版本中,这些部分对应如下的格式:
<major version>.<minor version>.<incremental version>-<qualifier>
    例如:版本“1.3.5”由一个主版本1,一个次版本3,和一个增量版本5。而一个版本“5”只有主版本5,没有次版本和增量版本。限定版本用来标识里程碑构建:alpha和beta发布,限定版本通过连字符与主版本,次版本或增量版本隔离。例如,版本“1.3-beta-01”有一个主版本1,次版本3,和一个限定版本“beta-01”。
    如果版本号与格式<主版本>.<次版本>.<增量版本>-<限定版本>相匹配,它就能被正确的比较;“1.2.3”将被评价成是一个比“1.0.2”更新的构件,这种比较基于主版本,次版本,和增量版本的数值。如果的版本发布号没有符合本节介绍的标准,那么的版本号只会根据字符串被比较;“1.0.1b”和“1.2.0b”会使用字符串比较。另外限定版本也是按照字符串比较排序的,如版本号“1.2.3-alpha-2”和“1.2.3-alpha-10”, Maven排序的结果是“alpha-10”比“alpha-2”更旧,如果使用“alpha-02”和“alpha-10”,这个问题就消除了。


21. 依赖范围
<project>
  ...
  <dependencies>
    <dependency>
      <groupId>org.codehaus.xfire</groupId>
      <artifactId>xfire-java5</artifactId>
      <version>1.2.5</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.geronimo.specs</groupId>
      <artifactId>geronimo-servlet_2.4_spec</artifactId>
      <version>1.0</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>
  ...
</project>
    这里的第一个依赖是对于来自Codehaus的XFire SOAP库的编译范围(compile)依赖。如果你的项目在编译,测试,和运行中都依赖于一个类库,你就要使用这种依赖。第二种依赖是一个对于JUnit测试范围(test)的依赖。当你只有在测试的时候才引用类库的时候,你就要使用测试范围依赖。Example 9.3, “项目依赖”中最后一个依赖是对于由Apache Geronimo项目实现的Servlet 2.4 API的依赖。最后一项依赖的范围是已提供的(provided)依赖。当你的开发过程只有在编译和测试时需要一个类库,而该类库在运行的时候由容器提供,那么你就需要使用已提供范围的依赖。
    附:

   compile(编译范围):
    compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath中可用,同时它们也会被打包。
   provided(已提供范围):
    provided依赖只有在当JDK或者一个容器已提供该依赖之后才使用。例如,如果你开发了一个web应用,你可能在编译classpath中需要可用的Servlet API来编译一个servlet,但是你不会想要在打包好的WAR中包含这个Servlet API;这个Servlet API JAR由你的应用服务器或者servlet容器提供。已提供范围的依赖在编译classpath(不是运行时)可用。它们不是传递性的,也不会被打包。
   runtime(运行时范围):
    runtime依赖在运行和测试系统的时候需要,但在编译的时候不需要。比如,你可能在编译的时候只需要JDBC API JAR,而只有在运行的时候才需要JDBC驱动实现。
   test(测试范围):
    test范围依赖 在一般的 编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。
   system(系统范围):
    system范围依赖与provided类似,但是你必须显式的提供一个对于本地系统中JAR文件的路径。这么做是为了允许基于本地对象编译,而这些对象是系统类库的一部分。这样的构件应该是一直可用的,Maven也不会在仓库中去寻找它。如果你将一个依赖范围设置成系统范围,你必须同时提供一个systemPath元素。注意该范围是不推荐使用的(你应该一直尽量去从公共或定制的Maven仓库中引用依赖)。

22. 依赖管理

    顶层POM中的依赖管理与在一个广泛共享的父POM中定义一个依赖是不同的。对初学者来说,所有依赖都会被继承。
    如果mysql-connector-java在顶层父项目中被作为一个依赖列出,这个层次中的所有项目都将引用该依赖。为了不添加一些不必要的依赖,使用dependencyManagement能让你统一并集中化依赖版本的管理,而不用添加那些会被所有子项目继承的依赖。换句话说,dependencyManagement元素和一个环境变量一样,能让你在一个项目下面的任何地方声明一个依赖而不用指定一个版本号。







0
0
分享到:
评论

相关推荐

    Maven权威指南中文版(完整).pdf

    Maven权威指南中文版 Maven是一种基于项目对象模型(POM)的项目管理和构建工具,旨在提供一种通用的、跨语言的、跨平台的项目管理方式。 Maven的主要特点是约定优于配置(Convention Over Configuration),它提供...

    PDF文档 Maven权威指南_中文完整版清晰

    通过阅读《PDF文档 Maven权威指南_中文完整版清晰》,读者将能全面掌握Maven的使用技巧,从而提升项目开发的效率和质量。无论是初学者还是经验丰富的开发者,都能从中受益匪浅,实现项目构建的标准化和自动化。

    maven权威指南英文原版

    通过阅读"Maven权威指南",开发者不仅可以掌握Maven的基本用法,还能深入了解其设计理念,从而更好地利用Maven提升项目开发的效率和质量。对于初学者来说,这本书是理解Maven和Java构建世界的宝贵资源;对于经验丰富...

    Maven权威指南_maven_

    **Maven权威指南** 《Maven权威指南》是Java开发者...通过阅读《Maven权威指南》,开发者不仅能掌握Maven的基本使用,还能深入理解其背后的原理和最佳实践,从而在实际项目中发挥出Maven的最大价值,提升开发效率。

    Maven权威指南中文版.pdf

    Maven是一种构建工具,一种项目管理工具,一种用来运行构建任务的抽象容器。对于那些成熟的,希望用一致的方式来管理和构建大量相互依赖的模块和类库,并且使用了 数千第三方组件的项目来说,Maven已经证明了它是一...

    Maven权威指南中文完整版清晰

    《Maven权威指南中文完整版清晰》是一本深入解析Maven构建工具的教程,它为Java开发者提供了详尽的指导,帮助他们理解和掌握Maven的使用。Maven是Apache软件基金会开发的一个项目管理工具,主要用于Java项目的构建、...

    Maven权威指南最全讲授

    《Maven权威指南最全讲授》是一本专为Java开发者设计的书籍,旨在帮助读者全面理解和掌握Maven这一强大的项目管理和构建工具。Maven不仅简化了项目的构建过程,还通过约定优于配置的原则,让开发环境的设置变得标准...

    Maven权威指南中文版(完整)

    ### Maven权威指南中文版知识点概览 #### 一、引言与Maven概念 - **Maven概述**:Maven是一种项目管理和理解工具,旨在通过一套标准流程来简化项目的构建过程。 - **约定优于配置(Convention Over Configuration)...

    maven 权威指南(中文版)

    maven 权威指南(中文版) 。

    maven权威指南中文版

    maven权威指南中文版,

    maven权威指南开发实例代码

    《Maven权威指南开发实例代码》是一本深入探讨Maven构建工具的实践性书籍,它提供了丰富的示例代码,帮助开发者全面理解并掌握Maven的使用。Maven是Apache软件基金会开发的一款项目管理和综合工具,它主要负责管理...

    Maven权威指南中文版(完整).rar

    通过深入阅读和实践"Maven权威指南中文版",无论是初学者还是经验丰富的开发者,都能对Maven有更深入的理解,提升项目管理和构建效率。记得在学习过程中,结合实际项目实践,将理论知识转化为实际技能,这将极大地...

    Maven权威指南中文版及相关实例

    **Maven权威指南中文版及相关实例** Maven是一款强大的Java项目管理工具,它极大地简化了构建、管理和依赖管理过程。本书《Maven权威指南中文版》深入浅出地介绍了Maven的核心概念、配置以及实际应用,是Java开发者...

    Maven权威指南_中文完整版清晰

    《Maven权威指南_中文完整版清晰》是一本详尽阐述Maven的书籍,它为Java开发者提供了构建项目、管理依赖以及自动化构建流程的全面指导。Maven是Apache软件基金会开发的一款项目管理和综合工具,它极大地简化了Java...

    Maven Book (ZH)_ Maven权威指南.pdf

    ### Maven权威指南知识点总结 #### 一、Maven概述 **1.1 Maven定义与功能** Maven是一款项目管理和理解工具。它通过一系列标准集合、项目生命周期、依赖管理系统以及插件系统来支持项目的构建和管理。 **1.2 ...

Global site tag (gtag.js) - Google Analytics