Puede declarar dependencias comunes en un script principal:
ext.libraries = [ // Groovy map literal
spring_core: "org.springframework:spring-core:3.1",
junit: "junit:junit:4.10"
]
Desde un script secundario, puede usar las declaraciones de dependencia así:
dependencies {
compile libraries.spring_core
testCompile libraries.junit
}
Para compartir declaraciones de dependencia con opciones de configuración avanzadas, puede usar DependencyHandler.create
:
libraries = [
spring_core: dependencies.create("org.springframework:spring-core:3.1") {
exclude module: "commons-logging"
force = true
}
]
Se pueden compartir varias dependencias con el mismo nombre:
libraries = [
spring: [ // Groovy list literal
"org.springframework:spring-core:3.1",
"org.springframework:spring-jdbc:3.1"
]
]
dependencies { compile libraries.spring }
luego agregará ambas dependencias a la vez.
La única información que no puede compartir de esta manera es a qué configuración ( alcance en términos de Maven) se debe asignar una dependencia. Sin embargo, desde mi experiencia, es mejor ser explícito sobre esto de todos modos.
Peter Niederwieser
fuente
dependencies.gradle
guión donde defino todos mis dependencias como propiedades, por ejemplo:ext.GROOVY = 'org.codehaus.groovy:groovy-all:2.1.6'
. En el proyecto raízbuild.gradle
, incluyoallprojects { apply from: "$rootDir/dependencies.gradle" }
. Luego, todas las dependencias se definen en un archivo en lugar de distribuirlas, y se utilizan más constantes "fáciles de leer" en las configuraciones de dependencia.allprojects
porque las propiedades adicionales a nivel de proyecto son visibles para los subproyectos.