Gradle - построить JAR, содержащий только скомпилированный класс из сгенерированных исходных файлов (kapt) - PullRequest
0 голосов
/ 13 февраля 2020

Я написал процессор аннотаций времени компиляции в Kotlin. Теперь я включаю его в конкретный c проект. Он генерирует Kotlin файлов с успехом. Kotlin файлы доступны в следующем каталоге "$buildDir/generated/source/kaptKotlin/main"

Я хочу создать JAR, содержащий только сгенерированные файлы (т.е. экспортировать его как библиотеку).

Вот Gradle Конфигурация, которую я написал:

task myCustomJar(type: Jar, dependsOn: classes) {
    archiveBaseName = MyCustomJar
    archiveVersion = 1.0.0
    includeEmptyDirs = false
    from "$buildDir/generated/source/kaptKotlin/main"
}

Но встроенный JAR содержит исходные файлы (.kt), а не .class. Поэтому я не мог использовать его в другом проекте.

Во второй раз я написал эту конфигурацию:

task myCustomJar(type: Jar, dependsOn: classes) {
    archiveBaseName = MyCustomJar
    archiveVersion = 1.0.0
    includeEmptyDirs = false
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}

На этот раз встроенный JAR содержит все файлы .class из Весь проект (включая сгенерированный код).

Я хочу, чтобы файл JAR содержал только .class файлов на основе сгенерированных исходных файлов.

Кто-нибудь есть идея?

...