Acceso a datos relacionados con el proyecto desde el comando Gradle

Necesito datos relacionados con el proyecto como el nombre del proyecto, la versión de la aplicación y su módulo principal de gradle basado en el proyecto androide. He intentado varias tareas como proyecto, propiedades, pero ninguna de ellas me da información específica que necesito.

¿Hay una manera de encontrar el código de la versión, el nombre de la aplicación y el módulo android principal usando gradle en la línea de comandos?

Utilizando la variable global "BuildConfig", obtendrá

Boolean DEBUG

Cadena APPLICATION_ID

Cadena BUILD_TYPE

SABOR DE CADENA

Int VERSION_CODE

Cadena VERSION_NAME

Por ejemplo: – BuildConfig.APPLICATION_ID

Y si ha definido los datos globales en gradle como

debug { buildConfigField "String", "BASE_URL", '"http://172.16.1.175:8080/api/"' debuggable true } 

Obtendrá estos detalles también

BuildConfig.BASE_URL

Probablemente puede escribir su propia tarea de gradle personalizada para hacer eso. Agregue este fragmento de código en su aplicación build.gradle, donde define su complemento android y lo ejecuta desde la consola. Puede formatear la salida como lo necesite y utilizar otros datos del script de compilación.

task hello<<{ println("versionCode = ${android.defaultConfig.versionCode}") println("applicationId = ${android.defaultConfig.applicationId}") println("minSDK = ${android.defaultConfig.minSdkVersion}") }

Puede utilizar resValue para que obtenga valor

Gradle

  defaultConfig { //other config resValue "String","versionCode","1" } 

Tu clase

 context.getString(R.string.versionCode); 

No sé si le conviene, puede crear un archivo de gradle de init común, que se ejecuta desde la línea de comandos, por lo que no es una manipulación de código fuente, donde se imprimen todos los datos necesarios. Pero la salida del gradle está sucia.

Este es un fragmento de init.gradle que está en /Users/username

 allprojects{ afterEvaluate({//listen for project evaluation println(project.name)//it is supposed to be 2 projects "ProjName" and "app" if(project.name.equalsIgnoreCase("app")){//or any other condtion to check if it is inner android project project.task("getVersion",{ println("versionCode = ${android.defaultConfig.versionCode}") }) } }); } 

Usted comienza esta escritura como ./gradlew --I /Users/username/init.gradle Esto es lo que tengo como salida

 music app versionCode = 1 :help Welcome to Gradle 2.4. To run a build, run gradlew <task> ... To see a list of available tasks, run gradlew tasks To see a list of command-line options, run gradlew --help To see more detail about a task, run gradlew help --task <task> BUILD SUCCESSFUL Total time: 6.929 secs This build could be faster, please consider using the Gradle Daemon: http://gradle.org/docs/2.4/userguide/gradle_daemon.html 

Así que esto es lo que se podría hacer, otra opción disponible es analizar el archivo build.gradle o manifest.xml en bash, o escribir una utilidad de consola propia que lo hará con una salida más limpia. Espero haber ayudado.

  • Gradle versión 1.10 es necesario. La versión actual es 2.2.1. En android
  • Gradle 4.0 No se puede encontrar una configuración coincidente
  • Cómo deshabilitar lint abortOnError en Android Gradle Plugin desde el nivel superior del directorio de proyectos múltiples
  • Error: Error de ejecución para la tarea ': app: transformClassesWithDexForDebug'. > Com.android.build.api.transform.TransformException: .. valor de salida distinto de cero 3
  • ¿Cómo puedo añadir sabores en un módulo con Android Studio?
  • Actualización de Android Studio -Error: No se pudo ejecutar la acción de compilación mediante la distribución de Gradle
  • Error de secuencia de comandos de compilación, método DSL de Gradle sin soporte encontrado: 'release ()'!
  • Se produjo un error de tarea Gradle en el proyecto de estudio android
  • Cambiar el contenido de un archivo java a través de gradle para diferentes tipos de compilación en Android
  • Android Studio Gradle Error - PreDexDebug
  • Error al instalar apk - analizar el paquete
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.