Cómo cambiar el directorio de salida del archivo AAR de una biblioteca en Android Studio
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" p>
/?IM SDK principal
def?imPath?=?rootPath? ??/im-sdk"? buildPath? "/im-sdk-release.aar" p>
/?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 p>
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) ) p>
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;----------"
}