Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo cambiar el directorio de salida del archivo AAR de una biblioteca en Android Studio

Cómo cambiar el directorio de salida del archivo AAR de una biblioteca en Android Studio

Establezca la ruta de ubicación del archivo AAR generado por Android Studio a través de Gradle

Recientemente, he estado escribiendo SDK. A medida que el SDK se basa en más y más bibliotecas, se generan cada vez más archivos AAR. SDK Hay tantas funciones que no puedo combinar varios AAR en uno, por lo que necesito entregar varios archivos AAR desde el SDK cada vez.

La ruta predeterminada para generar un AAR es [\build\outputs\aar], y hay que buscarlo y copiarlo de un proyecto a otro cada vez. Es demasiado engorroso escribir un script de copia manual. , que incluye: eliminar el AAR original, compilar y generar el AAR y copiar el AAR al directorio especificado.

A nadie le ha importado nunca antes la sintaxis de Gradle, esta vez estoy muy familiarizado con ella, definitivamente hay mucho en lo que trabajar, no dudes en preguntar.

Uso:

Copie el siguiente fragmento de código en la ubicación del archivo build.gradle del proyecto, abra Tareas en Gradle en el lado derecho de Android Studio y busque aarRelease en otros. Haga doble clic en él y recuerde cambiar la ruta del proyecto interna a su ruta real. Esto es solo una idea.

///? ----------? ¿Compilar y publicar el AAR? (eliminar AAR antiguo, compilar AAR nuevo, copiar AAR nuevo al mismo directorio)? ----------

tarea?aarRelease(tipo:?Copiar)?{

//?Tarea Inicio

println?" ----------gt;?AAR?Release?Task?Start?lt;----------"

/?Ruta raíz, por ejemplo: E : \03_AndroidClient\other\IM_SDK\trunk\IM_SDK

def?rootPath?=?rootProject.rootDir.path

/?Ruta de compilación donde se encuentra AAR

def ?buildPath?=?"

/?/build/outputs/aar"

/?Ruta de salida AAR

def?/aar_release"

/?IM SDK principal

def?imPath?=?rootPath? ??/im-sdk"? buildPath? "/im-sdk-release.aar"

/?IM depende del SDK de mapas de Baidu

def?baiduLbsPath?=?rootPath? ?"/im-sdk-baidu-lbs"?buildPath? baidu- lbs-release.aar"

//?IM depende del SDK de Baidu Eagle Eye

def?baiduTracePath?=?rootPath? ?"/im-sdk-baidu-trace "? ?buildPath? ?"/im-sdk-baidu-trace-release.aar"

//?Live SDK dependiente de IM

def?livePath?=?rootPath? ?/ im-sdk-live"? ?buildPath? ?"/im-sdk-live-release.aar"

//?IM depende del SDK de la biblioteca de selección de imágenes

def?/ im-sdk-matisse"? ?buildPath? ?"/im-sdk-matisse-release.aar"

//?matriz de paquetes

def?modulePaths?= ?[imPath,?baiduLbsPath,?baiduTracePath,?livePath,?matissePath]

//?Eliminar directorio de salida AAR

println?"Delete?-gt;?" aarOutPath

delete?aarOutPath

/? Bucle para eliminar cada directorio de compilación AAR

for(path?in?modulePaths)?{

println? "Eliminar?-gt;?" ??ruta

eliminar?ruta

}

/?Ejecutar script AAR compilado (script local) )

depende de?'assembleRelease'

/?Bucle para copiar AAR al directorio de salida de ARR

for(path?in?modulePaths)?{

//?Mostrar iniciar copia

println?"-gt;?Iniciar copia actuallt;-"

/?Directorio actual

println?"Directorio actual

println? ?ruta

desde?ruta

/?Copiar a ?aarOutPath

println? " Into?:?" ??aarOutPath

into?aarOutPath;

//?Mostrar el final de la copia actual

println?"-gt;? Fin ?de?copia?actual?lt;-"

}

/?La tarea finaliza

println?"--------- - gt;?AAR?Tarea de publicación finalizadalt;----------"

}