Я только что обновился до Kotlin 2.1.20. После очистки бесчисленных ошибок сборки я предупреждаю, что я получаю в каждом модуле в своем приложении, в котором говорится: < /p>
Артефакт org.jetbrains.kotlin: Kotlin-Compiler-Embeddable < /code> находится
присутствует в плагине Classpath Classpath. Это может привести к непредсказуемому и непоследовательному поведению. Пожалуйста, удалите
org.jetbrains.kotlin:kotlin-compiler-embeddable< /code> Артефакт из ClassPath
Build. См. Https://kotl.in/gradle/internal-compiler-symbols
для более подробной информации. Но какой из них и как мне это исправить? Надеясь, что кто -то поможет мне выяснить, как это реализовать. Который из? уровень приложения? Уровень модуля? Я попробовал оба, ни с каким -либо успехом (с точки зрения получения зависимостей в следующих разделах для разрешения): < /p>
// build.gradle.kts
dependencies {
compileOnly("org.jetbrains.kotlin:kotlin-compiler-embeddable:2.2.0")
}
< /code>
Затем, основываясь на этой зависимости, он просит меня создать эти абстрактные классы: < /p>
Next, define a Gradle work action to print the Kotlin compiler version:
import org.gradle.workers.WorkAction
import org.gradle.workers.WorkParameters
import org.jetbrains.kotlin.config.KotlinCompilerVersion
abstract class ActionUsingKotlinCompiler : WorkAction {
override fun execute() {
println("Kotlin compiler version: ${KotlinCompilerVersion.getVersion()}")
}
}
import org.gradle.api.DefaultTask
import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.tasks.Classpath
import org.gradle.api.tasks.TaskAction
import org.gradle.workers.WorkerExecutor
import javax.inject.Inject
abstract class TaskUsingKotlinCompiler: DefaultTask() {
@get:Inject
abstract val executor: WorkerExecutor
@get:Classpath
abstract val kotlinCompiler: ConfigurableFileCollection
@TaskAction
fun compile() {
val workQueue = executor.classLoaderIsolation {
classpath.from(kotlinCompiler)
}
workQueue.submit(ActionUsingKotlinCompiler::class.java) {}
}
}
import org.gradle.api.Plugin
import org.gradle.api.Project
abstract class MyPlugin: Plugin
{
override fun apply(target: Project) {
val myDependencyScope = target.configurations.create("myDependencyScope")
target.dependencies.add(myDependencyScope.name, "$KOTLIN_COMPILER_EMBEDDABLE:$KOTLIN_COMPILER_VERSION")
val myResolvableConfiguration = target.configurations.create("myResolvable") {
extendsFrom(myDependencyScope)
}
target.tasks.register("myTask", TaskUsingKotlinCompiler::class.java) {
kotlinCompiler.from(myResolvableConfiguration)
}
}
companion object {
const val KOTLIN_COMPILER_EMBEDDABLE = "org.jetbrains.kotlin:kotlin-compiler-embeddable"
const val KOTLIN_COMPILER_VERSION = "2.2.0"
}
}
< /code>
У меня есть следующие вопросы /проблемы: < /p>
Практически ни один из операторов импорта не разрешает зависимости. Почти каждая строка в абстрактных классах не разрешается (и, конечно, я синхронизировал с Gradle) < /li>
Куда мне поместить эти классы? Я предполагаю, что вставлю в модуль, который бросает предупреждение, но, поскольку ничего не решается, я понятия не имею, есть ли они в нужном месте. Документация молчит по этому поводу. Но в этой «документации» нет ничего, что объясняет, где их реализовать. Может быть, это волшебные абстрактные классы, которые не нужно реализовать? Но опять же, ноль объяснение этого. < /Li>
< /ul>
кто -нибудь успешно реализовал это предложение? Я в полной потери и очень разочарован тем, как это объясняется. Ищу помощь. Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ent-in-the
Артефакт `org.jetbrains.kotlin: Kotlin-Compiler-embeddable 'присутствует в плагине Build Class вдоль плагина Kotlin Grad ⇐ Android
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение