Gradle 在Kotlinks项目中包含kotlinx数据时间库的问题
失败:生成失败,出现异常Gradle 在Kotlinks项目中包含kotlinx数据时间库的问题,gradle,gradle-kotlin-dsl,kotlin-js,Gradle,Gradle Kotlin Dsl,Kotlin Js,失败:生成失败,出现异常 出了什么问题: 无法确定任务“:packageJson”的依赖项 无法解析配置“:npm”的所有依赖项。 无法解析org.jetbrains.kotlinx:kotlinx日期时间:0.1.0。 要求: 项目: >无法在org.jetbrains.kotlinx的以下变体之间进行选择:kotlinx datetime:0.1.0: -jsIr运行时 -JSL遗留运行时 所有这些都符合消费者属性: -变体“jsIr运行时”功能org.jetbrains.kotlinx
- 出了什么问题: 无法确定任务“:packageJson”的依赖项
- 尝试: 使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。使用--scan运行以获得完整的洞察力
- 得到更多的帮助
将生成扫描发布到scans.gradle.com需要接受在中定义的gradle服务条款。你接受这些条件吗?[是,否]使用Kotlin 1.3.xx构建项目时,如果您的一个依赖项(或任何可传递的依赖项)是使用Kotlin 1.4+构建的,则可能会遇到渐变错误: 出现此解决问题的原因是Kotlin 1.4为Kotlin/JS引入了两个不同编译器后端之间的选择,而Kotlin 1.3.xx中没有这种选择 解决方法: 要使用这些库,请在项目的根目录中创建一个名为“工作区”的文件,该文件位于项目的根目录中,并添加以下代码:
val pluginAction: Plugin<*>.() -> Unit = {
val pluginVersion = try {
this.javaClass.getMethod("getKotlinPluginVersion").invoke(this) as String
} catch(e: Exception) { null }
if (pluginVersion != null && pluginVersion.startsWith("1.3")) {
val jsCompilerAttr = Attribute.of("org.jetbrains.kotlin.js.compiler", String::class.java)
project.dependencies.attributesSchema.attribute(jsCompilerAttr) {
this.disambiguationRules.add(KotlinJsCompilerDisambiguationRule::class.java)
}
}
}
project.plugins.withId("org.jetbrains.kotlin.multiplatform", pluginAction)
project.plugins.withId("org.jetbrains.kotlin.js", pluginAction)
// project.plugins.withId("kotlin2js", pluginAction) // maybe even `kotlin2js`
private class KotlinJsCompilerDisambiguationRule : AttributeDisambiguationRule<String> {
override fun execute(details: MultipleCandidatesDetails<String>) {
details.closestMatch("legacy")
}
}
我没有找到解决办法,我在slack channel里被人指了指
您可以跟踪具有解决方案的链接
apply(from = "workaround_to_use_1_4_libs_in_1_3.gradle.kts")