Общий код между Gradle buildSrc и проектом

Предположим, у меня есть несколько классов, содержащих логику, которую я хотел бы использовать во время сборки Gradle и в самом приложении Java. Как настроить сборку Gradle для совместного использования одних и тех же классов между сборкой и строящимся проектом, например, с помощью Kotlin DSL?


person breandan    schedule 09.11.2018    source источник


Ответы (2)


Вы можете просто добавить общие классы в buildSrc в путь к классам вашего приложения следующим образом:

sourceSets["main"].compileClasspath += files("${project.rootDir}/buildSrc/build/")

Как упоминает @lance-java, вы также должны добавить зависимость компиляции:

dependencies {
  compile(fileTree("${project.rootDir}/buildSrc/build/"))
}

Наконец, если в классе вам нужно использовать импорт из org.gradle.api, добавьте эту строку в dependencies:

compile(gradleApi())
person breandan    schedule 09.11.2018

Вдохновленный ответом @breandan, я думаю, что лучше:

apply plugin: 'java' 
dependencies {
    compile files("${project.rootDir}/buildSrc/build/classes/" )
} 
person lance-java    schedule 09.11.2018