zoukankan      html  css  js  c++  java
  • gradle学习之旅(十) 依赖声明

    gradle项目的依赖类型

    依赖API


    上图是项目、依赖处理器、依赖 的类图表示

    • gradle项目有一个DependencyHandler实例,通过getDependencies()方法来取得引用。
    • 声明依赖需要通过dependencies配置块中的依赖处理器方法来声明
    • 每个依赖都是一个Dependency类型的一个实例,group、name、version、classifier属性明确的标识了一个依赖。

    外部模块依赖

    gradle中,外部类库通常以JAR文件的形式存在,被称为外部模块依赖。这种类型依赖的特点是在仓库中能够通过属性明确地标识。

    依赖属性

    • group:通常用来标识一个组织、公司、或项目。group可以用点标记法,但非强制,如org.hibernate。
    • name:一个工件的名称,唯一描述了依赖。
    • version:一个工件可以有不同版本
    • classifier:有时一个工件会定义这个属性,来区分具有相同group、name、version属性的工件,但他需要进一步规范,比如说根据运行时环境来定义。

    依赖标记

    • 依赖声明语法
    dependencies{
        configurationName dependencyNotation1,dependencyNotation2,...
    }
    
    • dependencyNotation的格式
      • group:groupString, name:nameString, version:versionString
      • "groupString:nameString:versionString"

    使用外部模块依赖需要在repositories配置快中添加仓库。

    依赖检查报告

    使用gradle dependencies运行dependencies help task时,会显示出当前项目完整的依赖树,依赖树显示了在构建脚本中声明的顶层依赖以及它们的传递性依赖。

    • 标有*号的依赖表示被排除
    • 针对版本冲突Gradle默认的解决策略是获取最新的版本。

    排除传递性依赖

    Gradle可以完全控制传递性依赖。

    • 排除一个依赖,可以通过快捷或map标记来声明排除依赖。比如:
    dependencies {
        cargo('org.codehaus.cargo:cargo-ant;1.3.1'){
            exclude group: 'xml-apis' , module: 'xml-apis'
        }
    }
    
    • 排除虽有传递性依赖
    dependencies {
        cargo('org.codehaus.cargo:cargo-ant;1.3.1'){
            transitive = false
        }
    }
    

    动态声明版本

    在声明依赖时将版本号写为1.+,就会获取依赖类库的最新的1.X版本

    文件依赖

    依赖于文件系统上的文件,无需声明仓库
    语法如下

    dependencies {
        compile fileTree(dir:dirString , include: '*.jar')
    }
    

    这样便可依赖dirString目录下的一系列jar。

  • 相关阅读:
    [SoapUI] UrlEncode编码/UrlDecode解码网站
    [Token] 从index.jsp中获取Token
    [Groovy]获取当前活动的Environment,获取response中节点的name和节点的value
    [Cookie] Clear Cookie
    [Groovy] Groovy API
    [Schema] I have updated my XML Schema for my service but SoapUI still generates/validates according to the old schema.
    [SoapUI] SoapUI可以做到些什么?功能有多强大?
    [Training Video
    [JSON] Validating/Asserting JSON response with Jsonlurper
    华中农业大学第四届程序设计大赛网络同步赛 I
  • 原文地址:https://www.cnblogs.com/Theshy/p/8042750.html
Copyright © 2011-2022 走看看