Я не могу вставить свои зависимости в окончательный файл плагина AAR - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь скопировать некоторые jar-файлы зависимостей в classes.jar, прежде чем он будет собран в AAR.Следующий код был скопирован из другого поста и получил нужные мне файлы, но я не могу объединить их с уже созданными в папке packaged-classes.

Я уже пытался использовать некоторые жирные файлыплагины, которые доступны там, но не заставили их работать.

Вот что я пытаюсь сделать:

task copyDependencies << {
    android.libraryVariants.all { variant ->
        println "Executing"
        variant.getCompileClasspath().each { fileDependency ->
            def sourcePath = fileDependency.absolutePath
            def destinationPath = project.projectDir.path + "/build/intermediates/packaged-classes/debug"
            println "Copying dependency:"
            println sourcePath

            //The monstrous regex that gets the name of the lib from it’s exploded .aar path
            def dependencyName
            if (sourcePath.contains("classes.jar")) {
                def dependencyNameRegexResult = (sourcePath =~ /.*\/(.*)\.aar\/.*\/jars\/classes\.jar/)
                if (dependencyNameRegexResult.size() > 0) {
                    dependencyName = dependencyNameRegexResult[0][1]
                    println "Exploded AAR found : ${dependencyName}"
                }
            }

            copy {
                from sourcePath
                into destinationPath

                rename {String filename ->
                    if (filename.contains("classes.jar") && dependencyName != null) {
                        dependencyName = "${dependencyName}.jar"
                        println "Renaming dependency file to : ${dependencyName}"
                        return dependencyName
                    }
                    return filename
                }
            }
        }
    }
}

tasks.whenTaskAdded { task ->
    if (task.name == 'assembleDebug') {
        task.dependsOn copyDependencies
    }
}

Когда я выполняю это, папка intermediates/packaged-classesУ меня есть зависимости .jar внутри classes.jar, но в папке output находится только файл плагина .jar.

...