android - google - gradle vs maven
gradle-duplicados de la biblioteca en dependencias (1)
Para encontrar dependencias duplicadas o sus dependencias requeridas , puede visualizar las dependencias de la biblioteca en el árbol. Ejecute el comando gradle como se muestra a continuación.
gradle -q dependencies yourProject:dependencies --configuration compile
Tenga en cuenta que ejecute
gradlew
en Windows como se muestra a continuación.
gradlew -q dependencies yourProject:dependencies --configuration compile
El resultado del comando le mostrará la jerarquía de árbol legible por humanos de todas las dependencias como se muestra a continuación.
compile - Classpath for compiling the main sources.
+--- org.androidannotations:androidannotations-api:3.2
+--- com.android.support:support-annotations:22.1.1
+--- com.squareup:otto:1.3.6
+--- in.srain.cube:grid-view-with-header-footer:1.0.10
+--- com.nostra13.universalimageloader:universal-image-loader:1.9.3
+--- com.github.chrisbanes.photoview:library:1.2.3
+--- org.simpleframework:simple-xml:2.7.1
+--- com.google.android.gms:play-services-base:6.5.+ -> 6.5.87
+--- project :yourProject
| +--- com.loopj.android:android-async-http:1.4.6
| +--- org.apache.httpcomponents:httpmime:4.2.5
| | /--- org.apache.httpcomponents:httpcore:4.2.4
| /--- com.google.code.gson:gson:2.3.1
+--- project :facebook
| /--- com.android.support:appcompat-v7:22.1.1
| /--- com.android.support:support-v4:22.1.1
| /--- com.android.support:support-annotations:22.1.1 -> 22.2.0
Puede ver las dependencias anuladas y decidir cuáles deben evitarse.
En el ejemplo anterior, la última línea
com.android.support:support-annotations
presenta una anulación
22.1.1
de
22.1.1
a
22.2.0
.
Para evitar duplicados
, puede agregar cláusulas de
exclude
en cada archivo
build.gradle
proyecto.
compile(''com.github.chrisbanes.photoview:library:1.2.3'') {
exclude group: ''com.android.support''
}
compile(''org.simpleframework:simple-xml:2.7.1'') {
exclude module: ''stax''
exclude module: ''stax-api''
exclude module: ''xpp3''
}
compile(''com.google.android.gms:play-services-base:6.5.+'')
{
exclude module: ''support-v4''
}
Para obtener más información, puede ver el tutorial en https://docs.gradle.org/current/userguide/userguide_single.html#sec:listing_dependencies
Tengo un proyecto de Android con gradle.
El problema es: en la vista de
project
, veo pocas versiones de
support-v4
bibliotecas
support-v4
, por ejemplo
support-v4-21.0.3
y
support-v4-22.2.0
.
Pero en
build.gradle
no tengo
support-v4
en absoluto.
Pero tengo ~ 10 otras dependencias en
build.gradle
.
Por ejemplo,
appcompat-v7:22.2.0
.
Puedo sugerir que
appcompat-v7:22.2.0
depende de
support-v4-22.2.0
en dependencias de maven y lo extrae implícitamente.
Pero no tengo ideas de quién saca
support-v4-21.0.3
.
Hasta donde sé, todas estas bibliotecas se incluirán en mi APK y aumentarán el peso de la APK.
Entonces tengo las siguientes preguntas:
- ¿Cómo evitar los duplicados de la biblioteca?
- ¿Cómo ver las dependencias de Maven en Android Studio?
-
¿Cómo detectar qué biblioteca requiere esta biblioteca?
Por ejemplo, ¿qué biblioteca requiere
support-v4-21.0.3
en mi proyecto?