Gradle 依赖管理

  • 依赖管理

    Gradle构建脚本定义了构建项目的过程;每个项目都包含一些依赖项和一些出版物。依赖关系是指支持构建项目的事物,例如其他项目中的必需JAR文件以及类路径中的外部JAR(如JDBC JAR或Eh-cache JAR)。发布是指项目的结果,例如测试类文件和构建文件(例如war文件)。所有大多数项目都不是独立的。他们需要其他项目构建的文件来编译和测试源文件。例如,为了在项目中使用Hibernate,您需要在类路径中包括一些Hibernate JAR。Gradle使用一些特殊的脚本来定义依赖项,需要下载它们。Gradle负责在某处构建和发布结果。发布基于您定义的任务。它可能想要将文件复制到本地目录,或者将它们上传到远程Maven或Lvy存储库,或者您可以使用同一多项目构建中另一个项目的文件。我们可以称发布任务为发布过程。
  • 声明你的依赖

    依赖项配置只不过定义了一组依赖项。您可以使用此功能来声明要从Web上下载的外部依赖项。这定义了不同的标准,如下所示。
    
    apply plugin: 'java'
    
    repositories {
       mavenCentral()
    }
    
    dependencies {
       compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
       testCompile group: 'junit', name: 'junit', version: '4.+'
    }
    
  • 依赖配置

    依赖关系配置只不过定义了一组依赖关系。您可以使用此功能来声明要从Web上下载的外部依赖项。这定义了以下不同的标准配置。
    • 编译 - 编译项目生产源所需的依赖项。
    • 运行时 - 生产类在运行时所需的依赖项。默认情况下,还包括编译时间相关性。
    • 测试编译 - 编译项目测试源所需的依赖项。默认情况下,它包括已编译的生产类和编译时间相关性。
    • 测试运行时 - 运行测试所需的依赖项。默认情况下,它包括运行时和测试编译依赖项。
  • 外部依赖

    外部依赖关系是依赖关系的类型之一。这依赖于当前构建外部构建的某些文件,并存储在某种类型的存储库中,例如Maven Central,Maven或Lvy存储库或本地文件系统的目录。以下代码段用于定义外部依赖关系。在build.gradle文件中使用此代码。
    
    dependencies {
       compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
    }
    
    外部依赖项声明了外部依赖项,快捷方式形式类似于“group:name:version”。
  • 储存库

    同时添加外部依赖项。Gradle在存储库中查找它们。存储库只是文件的集合,按组,名称和版本进行组织。默认情况下,Gradle不定义任何存储库。我们必须明确定义至少一个存储库。以下代码段定义了如何定义Maven存储库。在build.gradle文件中使用此代码。
    
    repositories {
       mavenCentral()
    }
    
    以下代码定义远程Maven。在build.gradle文件中使用此代码。
    
    repositories {
       maven {
          url "http://repo.mycompany.com/maven2"
       }
    }
    
  • 发布Artifacts

    依赖项配置还用于发布Artifacts。这些发布的文件称为工件。通常,我们使用插件来定义工件。但是,您确实需要告诉Gradle在何处发布工件。您可以通过将存储库附加到上载归档文件任务来实现此目的。查看以下用于发布Maven存储库的语法。在执行时,Gradle将根据项目要求生成并上传Pom.xml。在build.gradle文件中使用此代码。
    
    repositories {
       mavenCentral()
    }
    
    以下代码定义远程Maven。在build.gradle文件中使用此代码。
    
    apply plugin: 'maven'
    
    uploadArchives {
       repositories {
          mavenDeployer {
             repository(url: "file://localhost/tmp/myRepo/")
          }
       }
    }