Del mismo modo que hicimos en su momento con un proyecto maven para eliminar sus dependencias transitivas. Ahora haremos lo mismo con un proyecto Gradle pero además aprenderemos a manejarlas un poco más en profundidad.
Nos basaremos en un proyecto Web con Spring Framework de modo que nuestro proyecto utilice el repositorio de Maven y recupere dependencias de Spring Framework.
Para ello en nuestro build.gradle del proyecto ponemos lo siguiente:
build.gradle
--
apply plugin: 'java'
apply plugin: 'war'
sourceCompatibility = 1.5
version = '1.0.0'
jar {
manifest {
attributes 'Implementation-Title': 'mySpringWebProject', 'Implementation-Version': version
}
}
repositories {
mavenCentral()
}
dependencies {
compile ('org.springframework:spring-webmvc:3.2.5.RELEASE')
}
--
Con esto conseguimos que se importen todas las librerías que el proyecto web necesita y incluyendo las dependencias transitivas de las que depende nuestra librería spring-webmvc.Si no queremos que todas las dependencias transitivas de las librerías que utilizamos se descarguen haremos lo siguiente:
Modo 1:
--
.....
......
dependencies {
compile ('org.springframework:spring-webmvc:3.2.5.RELEASE'){transitive=false}
}
.....
.....
--
Modo 2:
--
....
....
dependencies {
compile module ('org.springframework:spring-webmvc:3.2.5.RELEASE')
}
....
....
--
Con estas opciones obtenemos sólo la importación de la librería seleccionada.La flexibilidad de Gradle nos da la posibilidad de seleccionar que dependencias transitivas queremos que se descarguen o no.
--
...
...
dependencies {
compile module ('org.springframework:spring-webmvc:3.2.5.RELEASE'){
dependency 'org.springframework:spring-beans:3.2.5.RELEASE'
}
....
....
--
Pero tenemos que tener en cuenta que las dependencias transitivas de la propia dependencias también se intentarán descargar. Por lo tanto todo lo que dependa de spring-beans también se descargará.
El resultado es el siguiente:
Ya que spring-core es dependencia spring-beans al igual que commons-logging
Para que sólo se descargara spring-beans tenemos que poner lo siguiente.
Modo 1:
--
...
...
dependencies {
compile module ('org.springframework:spring-webmvc:3.2.5.RELEASE'){
dependency ('org.springframework:spring-beans:3.2.5.RELEASE'){
transitive=false
}
}
}
....
....
--
Modo 2:--
...
...
dependencies {
compile module ('org.springframework:spring-webmvc:3.2.5.RELEASE'){
dependency module('org.springframework:spring-beans:3.2.5.RELEASE') }
}
....
....
--
De esta manera conseguimos el resultado deseado
Si queremos descargar varias, dependencias, por ejemplo spring-beans y spring-core, haremos los siguiente
--
...
...
dependencies {
compile module ('org.springframework:spring-webmvc:3.2.5.RELEASE'){
dependencies module('org.springframework:spring-beans:3.2.5.RELEASE'),
module('org.springframework:spring-core:3.2.5.RELEASE')
}
}
....
....
--
De este modo obtenemos:Espero que con todos estos ejemplos te hayan servido para aprender a configurar tus dependencias en tu proyecto Gradle.
Se agradecen comentarios, críticas y recomendaciones.
Referencias:
Grade Dependency Management Bascis
Gradle Dependency Managemet

No hay comentarios:
Publicar un comentario