Я пытаюсь настроить многопроектную установку с помощью gradle и пытаюсь сгенерировать проекты затмений с помощью eclipse
IDE-плагина.
Ниже приведена моя структура.
rootDir/
|---buildSrc/
|---src/
|---main/
|---gradle/
|---eclipse.gradle.kts
|---build.gradle.kts
|---app/
|---build.gradle.kts
|---models/
|---build.gradle.kts
|---services/
|---build.gradle.kts
|---build.gradle.kts
|---settings.gradle.kts
Ниже приведены содержимое указанных c файлов, например, settings.gradle.kts
и build.gradle.kts
settings.gradle.kts
rootProject.name = "platform"
include("app", "models", "services")
rootDir / build. gradle.kts
...
val buildSrc by extra("$rootDir/buildSrc")
configure(subprojects) {
apply(from = "$buildSrc/src/main/gradle/eclipse.gradle.kts")
}
rootDir / buildSrc / src / main / gradle / eclipse.gradle.kts
plugins {
eclipse
}
eclipse {
project {
println("Running inside eclipse closure for $name")
}
}
Когда я запускаю ./gradlew
Я получаю ниже ошибку:
Expression 'eclipse' cannot be invoked as a function. The function 'invoke()' is not found
FAILURE: Build failed with an exception.
* Where:
Script 'D:\work\sources\repos\platform\buildSrc\src\main\gradle\eclipse.gradle.kts' line: 5
* What went wrong:
Script compilation errors:
Line 5: eclipse {
^ Expression 'eclipse' cannot be invoked as a function. The function 'invoke()' is not found
Line 5: eclipse {
^ Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public val PluginDependenciesSpec.eclipse: PluginDependencySpec defined in org.gradle.kotlin.dsl
Line 6: project {
^ Type mismatch: inferred type is () -> Unit but String! was expected
3 errors
Однако, когда я делаю ниже изменения , он работает без ошибок
rootDir /buildSrc/src/main/gradle/eclipse.gradle заменить файл eclipse.gradle.kts
на eclipse.gradle
и внести изменения согласно groovy DSL
apply plugin: 'eclipse'
eclipse {
project {
println("Running inside eclipse closure for $name")
}
}
см. Правильный файл в rootDir / build.gradle.kts
...
val buildSrc by extra("$rootDir/buildSrc")
configure(subprojects) {
apply(from = "$buildSrc/src/main/gradle/eclipse.gradle")
}
Имеет файл kotlin
в gradle
каталог в rootDir/buildSrc/src/main/gradle
(пользовательский скрипт-плагин), вызывающий эту проблему? Если да, есть ли способ написать собственный плагин сценария - не бинарный плагин - в kotlin dsl?
Я попытался поместить скрипт kotlin в rootDir/buildSrc/src/main/kotlin/eclipse.gradle.kts
, но это не помогает .
Любая помощь будет полезна.