Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多项目Android Gradle构建共享配置_Android_Gradle - Fatal编程技术网

多项目Android Gradle构建共享配置

多项目Android Gradle构建共享配置,android,gradle,Android,Gradle,我正在尝试将一个相当大的Android项目从Maven迁移到Gradle,但我遇到了一些我不确定如何解决的问题 结构如下(目前我无法控制) 主模块不包含任何代码。 “src/main/java”结构被复制到所有其他模块(逻辑模块、服务模块、UI模块)中 1-我需要访问本地工件,为此,我们需要输入用户凭据。我有三个不同的存储库来查找工件(快照、版本和另一个我不记得的)。我需要对所有人使用相同的凭据。如何定义这些凭据、声明存储库以及在所有build.gradle文件中共享存储库(与凭据一起)?我或多

我正在尝试将一个相当大的Android项目从Maven迁移到Gradle,但我遇到了一些我不确定如何解决的问题

结构如下(目前我无法控制)

主模块不包含任何代码。 “src/main/java”结构被复制到所有其他模块(逻辑模块、服务模块、UI模块)中

1-我需要访问本地工件,为此,我们需要输入用户凭据。我有三个不同的存储库来查找工件(快照、版本和另一个我不记得的)。我需要对所有人使用相同的凭据。如何定义这些凭据、声明存储库以及在所有build.gradle文件中共享存储库(与凭据一起)?我或多或少地理解,我可以这样定义存储库(和凭据):

repositories {
     maven {
         credentials {
             username "mavenUser"
             password "mavenPassword"
         }

         url "myurl"
     }
}
但是,我不知道如何在所有gradle构建文件中共享此定义,并且我不认为跨这么多模块复制和粘贴是最好的主意。此外,从环境变量或类似Maven的settings.xml的内容获取用户和密码也很有用

2-我们需要定期发布,并在本地Artifactory中发布工件,并自动增加版本号,就像我们在Maven上所做的那样,有关于如何实现这一点的指针吗?(当然,我还没有对此进行过太多的研究,我一直坚持1)

3-我想在项目的所有build.gradle文件中共享groupId和版本

4-我希望能够为多个子模块声明一次依赖关系

感谢您的帮助。

1a,3,4)您可以定义一个allProjects或subProjects闭包,将其中的任何内容应用于所有相应的项目。e、 g

allprojects {
  group = "myGroup"
  version = "myVersion"

  repositories {
    maven {
      credentials {
        username "mavenUser"
        password "mavenPassword"
      }

      url "myurl"
    }
  }
}

subprojects {
  dependencies {
    compile "group:artifact:version"
  }
}
事实上,在根项目中有了这个build.gradle,如果子项目没有其他特别之处,那么就不需要给它们一个build.gradle。它们都将从注入的配置中获得一个组和版本,并将自动从目录名中提取它们的名称。但是,覆盖这些默认值或添加额外的依赖项等可以正常完成

1b)您可以将用户名和密码放入gradle中。属性:

auth.user="user"
auth.pass="pass"
然后在构建脚本中将它们作为标准变量调用

auth.user="user"
auth.pass="pass"