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