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?
- Error: no se pudo encontrar el destino con la cadena de hash 'android-21'
- Incrementar versión en la compilación del proyecto
- Android Studio falla - unsupport no soportado versión secundaria mayor 51.0
- ¿Cómo resolver el error de Android Studio donde no puede encontrar el archivo de manifiesto del proyecto?
- Autoincrement VersionCode con propiedades gradle extra
- Qué se genera y las carpetas intermedias en el directorio de la estructura y porqué la carpeta de las salidas falta
- Android: La ejecución falló para la tarea ': app: packageDebug'. > Datos
- No se pudo encontrar la propiedad 'outputFile' en com.android.build.gradle.internal.api.ApplicationVariantImpl
- Ejecutar tareas de creación de android en tareas personalizadas
- Error al convertir bytecode a dex: Causa: java.lang.RuntimeException: Clases de análisis de excepción - Android studio 2.0 beta 6
- Java.lang.NoClassDefFoundError: Resolución fallida de: Landroid / support / v4 / util / ArrayMap;
- Com.android.dex.DexException: Varios archivos dex definen Landroid / support / annotation / AnimRes;
- Gradle Build falló - Java.exe ha finalizado con un valor de salida diferente de cero 2
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.
- ¿Los modelos Realm realmente requieren getters y setters?
- Textview Lazyloading, setText en la posición incorrecta en gridview?