gradle - update - disable aapt2
¿Cómo aplicar el complemento a todos los proyectos con el nuevo mecanismo de complementos de Gradle? (1)
Antes de Gradle 2.1, podría aplicar el complemento a todos los proyectos utilizando el cierre de todos los proyectos (resolviendo el tarro, por supuesto):
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1"
}
}
allprojects {
apply plugin: "com.jfrog.artifactory"
}
Con el nuevo mecanismo de publicación, parece que el cierre de plugins
no se puede usar dentro de todos los allprojects
:
allprojects {
plugins {
id "com.jfrog.artifactory" version "3.0.1"
}
}
falla con:
"No se pudieron encontrar los complementos del método () para los argumentos [build_xxxx_run_closure1_closure4 @ yyyyy] en el proyecto raíz"
¿Cuáles son las reglas de uso de cierre de plugins
? ¿El complemento se aplica solo al proyecto actual? Si es así, ¿cómo puedo aplicarlo a todos los proyectos sin repetir el cierre de los plugins
dentro de cada compilación?
La nueva sintaxis de los plugins {...}
no se puede utilizar dentro de un allprojects {...}
o subprojects {...}
. Además, solo se puede utilizar dentro de los scripts de compilación (sin complementos de script, scripts de inicio, etc.). Si desea evitar tener que aplicar el complemento a cada proyecto individualmente, le sugiero que utilice la notación anterior. Este es un problema que el equipo de Gradle conoce y se presentará una solución en futuras versiones.
Actualización: A partir de Gradle 3.0, puede hacerlo de forma ligeramente modificada. Aún tiene que usar explícitamente apply()
pero ya no tiene que lidiar con todas las tonterías de buildscript { }
para obtener el complemento en su classpath. Esto también le permite aplicar condicionalmente complementos. Echa un vistazo a las notas de la versión de Gradle 3.0 para obtener más información.
plugins {
id ''my.special.plugin'' version ''1.0'' apply false
}
allprojects {
apply plugin: ''java''
apply plugin: ''my.special.plugin''
}