2017-09-16 137 views
0

可以说我有在一个多模块的gradle两个项目(4.2)存储库具有以下配置:避免重复存储库宣言多模块摇篮项目

项目A的build.gradle:

dependencies { 
    compile (group: 'org.example', name: 'dependency-of-vast-importance', version: '17.2') { 

} 

repositories { 
    maven { 
     url "http://download.example.org 
    } 
} 

项目B的build.gradle:

dependencies { 
    compile project(":projectA") 
    compile (group: 'org.anotherdependency', name: 'anotherdependency', version: '1.0') 
} 
repositories { 
    maven { 
     url "http://download.anotherdependency.org 
    } 
} 

利用这种配置,项目B将无法建立-claiming中无法找到的依赖 - 的 - 庞大的-重要性。

到目前为止,唯一的“解决方案”我已经找到了成功完成构建需要编写的build.gradle为项目B,如:

dependencies { 
    compile project(":projectA") 
    compile (group: 'org.anotherdependency', name: 'anotherdependency', version: '1.0') 
} 
repositories { 
    maven { 
     url "http://download.anotherdependency.org 
    } 
    maven { 
     url "http://download.example.org 
    } 
} 

这种做法是不值钱的,因为它要求我复制存储库声明对于ProjectA来说,依赖它的所有其他项目都失败了,这就违背了依赖管理和模块的目的。

如何避免指定项目B的build.gradle中项目A所需的所有存储库?

+0

你必须这样做。 –

回答

1

使用根的build.gradle:

allprojects { 
    repositories { 
     maven { url 'http://download.anotherdependency.org' } 
     maven { url 'http://download.example.org' } 
    } 
} 

此代码将适用于仓库的所有项目

+0

这是我最终完成的任务-wish gradle有能力从特定存储库派生依赖关系。 – THX1138