Как настроить конкретные исходные наборы Kotlin?JAVA

Программисты JAVA общаются здесь
Anonymous
Как настроить конкретные исходные наборы Kotlin?

Сообщение Anonymous »

Предположим, я использую gradle 9.1 и плагин kotlin 2.3.0
Предположим, у меня есть следующая конфигурация gradle для проекта Java, которая создает собственный каталог исходных кодов (представьте себе интеграционные тесты, но не в каталоге IntegrationTest. Для целей вопроса его нельзя переименовать и не учитывать, что каталог будет содержать модульные/интеграционные/другие тесты по программированию. Считайте это компонентом экзаменационного тестирования).

Код: Выделить всё

sourceSets {
componentTest {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
java {
srcDir(file("src/test-component/java"))
}
}
}
Основной и тестовый модули существуют неявно, поскольку они настраиваются плагином java(-library).
Функция SourceSet#java определяет, где находится исходный код для данного модуля в Java, но что является эквивалентом org.jetbrains.kotlin.jvm.gradle.plugin? Насколько я понимаю, вы имитируете то же объявление, что и выше, но используете kotlin вместо java.

Код: Выделить всё

sourceSets {
componentTest {
compileClasspath += main.output + test.output
runtimeClasspath += main.output + test.output
kotlin {
srcDir(file("src/test-component/kotlin"))
}
}
}
Проблема в том, что с точки зрения gradle не существует метода SourceSet#kotlin, а также не существует какого-либо расширения, зарегистрированного плагином kotlin, которое позволяло бы вызывать этот метод в SourceSet компонентTest , что, в свою очередь, создает новый выделенный набор исходных кодов под названием kotlin . Насколько я понимаю, вам нужно напрямую вызвать плагин Kotlin, чтобы настроить наборы исходных кодов, связанные с Kotlin

Код: Выделить всё

kotlin {
sourceSets {
componentTest {
kotlin {
srcDir(file("src/test-component/kotlin"))
}
}
}
}
Но как настроить их путь к классу компиляции/выполнения? Вы вынуждены использовать смешанную конфигурацию - как для конкретной конфигурации Java, опускающей ссылку на папку с исходным кодом Java, так и для конкретной конфигурации Kotlin для связывания каталога с исходными кодами Kotlin?
Есть ли способ настроить модули без автоматического указания наборов исходных кодов? бывший. фабричный метод, в котором вы указываете каталог, в котором находятся ваши исходные коды, и зависимости от других модулей

Подробнее здесь: https://stackoverflow.com/questions/798 ... ource-sets

Вернуться в «JAVA»