Pregunta

Tal vez me falta algo acerca de la forma en que funciona Gradle. Lo que tenemos aquí es un proyecto principal, que sólo contiene la configuración, es decir, no habrá ningún artefacto que se está construyendo en la construcción que, simplemente gestiona y construye todas sus sub-proyectos.

Ahora los sub-proyectos comparten una cierta configuración dependencia, por lo que pensé que haría en build.gradle del proyecto raíz es:

subprojects {
  dependencies {
    compile fileTree(dir: 'lib', includes: ['*.jar'])
  }    
}

que, sin embargo, no funciona, se produce un error con un mensaje de error más bien oscuro:

Se produjo un problema evaluación de la raíz proyecto 'Qype-android' Causa: No se firma del método: org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.compile () es aplicable para los tipos de argumentos: (Org.gradle.api.internal.file.DefaultConfigurableFileTree) valores: [archivo de conjunto 'lib'] Posibles soluciones: módulo (java.lang.Object)

después de algún ensayo y error, que podría "arreglar" este problema mediante la aplicación de la 'java' plugin para el proyecto principal.

¿Por qué? No veo en cualquier lugar de la documentación Gradle que una dependencia fileTree requiere el plugin de Java. Aun así, ¿por qué lo necesitaría en el proyecto que se está inyectando la configuración, en lugar de en el proyecto que se está configurando (nota que los subproyectos todos aplican el plugin de Java sí mismos)?

¿Esto quiere decir que si tengo N diferentes sub-proyectos que son todos de distinta naturaleza, y se aplican diferentes plugins, que los proyectos de los padres siempre deben aplicar el conjunto de todos plugins seres utilizaron un lugar para sí mismo, también?

¿Fue útil?

Solución

No es la fileTree que requiere 'java' plug-in.

El mensaje de error se queja de configuración dependencia compile indefinido. Plugin de Java define esta configuración para usted, para que pueda agregar dependencias (incluyendo su FileTree) a la misma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top