que - Ejecute la pelusa al construir proyectos de estudio de Android
que es android studio (6)
Me gustaría poder ejecutar la tarea de la pelusa cuando estoy construyendo proyectos con el estudio de Android para garantizar que se sigan las reglas de la pelusa.
He intentado usar dependencias de tareas pero sin suerte. Mi servidor de generación de teamcity usa la tarea de compilación que ejecuta la tarea de borrado, por lo que funciona muy bien. Sin embargo, el estudio de Android parece usar las tareas generateDebugSources y compileDebugJava indistintamente cuando selecciono la variante de compilación de depuración.
Esto es lo que he intentado en mi build.gradle:
assemble.dependsOn lint
Aquí está mi solución, que también funciona cuando haces clic en Build - Make Project en Android Studio:
android {
..
afterEvaluate {
applicationVariants.all {
variant ->
// variantName: e.g. Debug, Release
def variantName = variant.name.capitalize()
// now we tell gradle to always start lint after compile
// e.g. start lintDebug after compileDebugSources
project.tasks["compile${variantName}Sources"].doLast {
project.tasks["lint${variantName}"].execute()
}
}
}
}
Para conectar la pelusa y analizar su proyecto, simplemente seleccione Analyze > Inspect Code
.
Deberías obtener una buena ventana con todos los problemas.
También verifique Run lint en Android Studio para más información.
Hice un poco más de investigación, intente agregar esto a su build.gradle
.
lintOptions {
abortOnError true
}
Hay muchas options que puede aplicar a build.gradle
Para hacer esto en build.gradle, agregue las siguientes líneas a su build.gradle:
android {
applicationVariants.all { variant ->
variant.outputs.each { output ->
def lintTask = tasks["lint${variant.name.capitalize()}"]
output.assemble.dependsOn lintTask
}
}
...
}
Esto hace que todas las tareas de ensamblaje dependan de la tarea de pelusa ejecutándolas de manera efectiva antes de cada llamada de ensamblaje ejecutada por Android Studio.
Si desea obligar al proyecto de Android Studio a ejecutar la verificación de pelusa antes de la configuración de ejecución predeterminada sin afectar la configuración de las tareas de gradle, Y desea hacerlo en el sistema de compilación gradle, puede agregar el siguiente bloque fuera del android
bloquear en build.gradle del módulo de la aplicación de la siguiente manera:
android {
....
lintOptions {
abortOnError true
}
}
tasks.whenTaskAdded { task ->
if (task.name == ''compileDevDebugSources'') {
task.dependsOn lint
task.mustRunAfter lint
}
}
Reemplace compileDevDebugSources
con la variante de compilación deseada que ya haya definido, p. Ej. compileReleaseSources
, compileDebugSources
, compileStagingDebugSources
, etc.
Esto fue probado trabajando en Android Studio 3.0
Si solo desea configurar su proyecto Android Studio para ejecutar la verificación de pelusa antes de la configuración de ejecución predeterminada sin afectar la configuración de las tareas de gradle, puede seguir estos pasos.
- Abra la configuración desplegable de ejecución y elija editar
- Seleccione la configuración de ejecución de su aplicación
- Presione el ''+'' para agregar un nuevo paso
- Elige "Gradle-aware Make"
- Escriba ''verificar'' y elija la opción con el nombre y verificación de su aplicación. (El mío es
:app:check
)
- Presione la flecha hacia arriba para mover el nuevo paso de
check
antes de que el paso deGradle-aware make
Ahora, Android Studio ejecutará la verificación de pelusa y fallará la compilación si se produce algún error de pelusa.
solo ejecuta la tarea de "verificar"
./gradlew clean check assembleRelease