init.gradle文件的目的是什么

时间:2015-07-14 21:22:03

标签: android maven android-studio gradle

有人可以解释这个init.gradle文件的意义,因为它似乎只是向我复制代码:

  buildscript {
    repositories {
        maven {
            url "https://someEnterpriseURL"
        }
    }
}

allprojects {
    repositories {
        maven {
            url "https://someEnterpriseURL"
        }
    }
}

混淆的原因是在项目build.gradle文件中定义如下:

    buildscript {
    repositories {
        maven {
            url "https://someEnterpriseURL"
        }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.1.1'

    }
}

allprojects {
    repositories {
        maven {
            url "https://someEnterpriseURL"
        }
    }
}

那么为什么甚至在init.gradle文件中定义了这个?当我在build.gradle文件中定义相同的东西时,它如何帮助开发人员获得init.gradle文件?

2 个答案:

答案 0 :(得分:4)

您的build.gradle个文件是每个项目和每个模块。您的init.gradle文件是基于每个用户设置的(在~/.gradle或Gradle的主目录中,用于本地Gradle安装)。我希望在大型组织中更常见的init.gradle文件,试图在多个项目和开发团队中标准化一些Gradle构建策略。

引用the Gradle documentation

  

以下是几种可能的用途:

     
      
  • 设置企业范围的配置,例如在哪里可以找到自定义插件。

  •   
  • 根据当前环境设置属性,例如开发人员的计算机与持续集成服务器。

  •   
  • 提供有关构建所需用户的个人信息,例如存储库或数据库身份验证凭据。

  •   
  • 定义计算机特定的详细信息,例如JDK的安装位置。

  •   
  • 注册构建侦听器。希望收听Gradle事件的外部工具可能会发现这很有用。

  •   
  • 注册构建记录器。您可能希望自定义Gradle如何记录它生成的事件。

  •   

答案 1 :(得分:1)

如您所知,gradle是Ant工具和Maven工具的组合。您可能已经看到了ant工具如何工作(在本地添加jar或lib)和maven工具(从云中添加jar和libs文件以及编写脚本以在构建期间从云下载它)。所以基本上这个 init.gradle 文件通常用于全局可用的一些jar(通常用于放置在云中的大型组织),它将包含服务器的url或地址,以便下载jar并缓存它在gradle包装器中(你可以在.gradle->缓存中看到那些下载后通过云计算的jar文件)。

在一个组织中可视化的想象,这个组织中有一个支持jar文件,它不时地不断更新,并且该组织中有另一个团队需要该jar用于他们的应用程序。所以我们这里的'strong> init.gradle '可以帮助我们解决这个问题。每当应用程序由后一个团队构建时,自动从服务器下载最新的jar。