Получить кешированные преобразованные AAR зависимости classes.jar - PullRequest
0 голосов
/ 12 февраля 2019

Context

Я пытаюсь реализовать Dokka в проекте, используя его fat-jar.Чтобы иметь возможность создавать документацию.Мне нужен путь к классу зависимостей, которые использует проект.Dokka принимает jar как classpath, чтобы иметь возможность генерировать документацию.Я использовал Groovy для генерации задачи Gradle, чтобы иметь возможность извлекать зависимости для каждого подпроекта

Задача

Поскольку в проекте используются зависимости AAR, мне нужен файл classes.jar этих файлов.

То, что я до сих пор придумал

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

def classpaths = []
subprojects.each { project ->
    classpaths.addAll(project.android.getBootClasspath().collect { it.path })

    project.configurations.each { configuration ->
        try {
            classpaths.addAll(configuration.files.collect { it.path })
        } catch (Exception ignored) {
        }
    }
}

Этот код будет извлекать большинство AAR.Но, похоже, он не печатает зависимости (например, Glide)

Вопрос

Как получить преобразованный каталог зависимостей или их путь classes.jar для всех зависимостей проектаиспользует?Мне нужно иметь возможность получить путь динамически.

Пример нужного мне каталога: /Users/user/.gradle/caches/transforms-1/files-1.1/glide-4.8.0.aar / efaa2fb5a51ab0ecf0ac00dd6a8d019b / jars / classes.jar

...