我试图建立一个Kotlin项目,它想要一些仅运行时的依赖项,但这些依赖项来自分类器。
我正在使用
libs.versions.toml
catalog文件来存储所有版本,但Gradle决定该目录文件不能存储分类器信息,所以现在我正试图找到一种不使用目录的方法来指定它。
kotlin {
// ...
sourceSets {
val jvmMain by getting {
dependencies {
// ...
implementation(libs.lwjgl)
implementation(libs.lwjgl.openvr)
runtimeOnly(libs.lwjgl.openvr) // but want classifier = "native-windows"
}
}
val jvmTest by getting
}
}
迄今为止已尝试
-
在…上
a Gradle ticket
,他们说会是这样的:
runtimeOnly(libs.lwjgl.openvr) {
artifact {
classifier = "native-windows"
}
}
然而,这并不起作用,因为
runtimeOnly
这需要两个
Any
以及配置动作。如果我把它作为字符串提供,它就可以工作了,但我不再使用版本目录了。
-
类似的问题得到了回答
here
会让我使用这个:
implementation(variantOf(libs.lwjgl.openvr) {
classifier("native-windows")
})
然而,这似乎也无效-否
variantOf
函数存在,我找不到从哪里导入它,到目前为止还没有人说他们从哪里得到它。
-
然后我尝试了通常的破解方法,比如
.apply{}
…但看起来我在任何时候得到的对象类型都不是能够设置分类器的正确类型。
所以我没有想法,没有放弃另一个项目中的目录功能,因为它阻碍了我做任何有用的事情。
正在播放的版本: