我正在尝试升级asciidoctor,因为在gradle版本7中不再支持旧版本。问题是,我不知道如何从我当前的gradle kotlin代码中升级它。(我只在groovy中找到了一些例子)。我目前拥有的gradle代码看起来有点像以下内容:
plugins {
id("org.asciidoctor.convert") version "2.4.0"
....
kotlin("jvm") version "1.5.0"
kotlin("plugin.spring") version "1.5.0"
}
....
repositories {
mavenCentral()
maven { url = uri("https://repo.spring.io/milestone") }
maven { url = uri("https://repo.spring.io/snapshot") }
jcenter()
}
dependencies {
....
asciidoctor("org.springframework.restdocs:spring-restdocs-asciidoctor")
}
val snippetsDir by extra { file("build/generated-snippets") }
tasks.test {
useJUnitPlatform()
outputs.dir(snippetsDir)
mustRunAfter(tasks.flywayMigrate.get())
}
tasks.asciidoctor {
dependsOn(tasks.test.get())
sourceDir("src/main/docs")
inputs.dir(snippetsDir)
attributes["snippets"] = file(snippetsDir)
attributes["docinfo1"] = ""
attributes["environment-${project.properties["spring.profiles.active"]}"] = true
}当我将org.asciidoctor.convert更改为org.asciidoctor.jvm.convert时出现以下错误
Expression 'asciidoctor' cannot be invoked as a function. The function 'invoke()' is not found和:
Unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public val TaskContainer.asciidoctor: TaskProvider<AsciidoctorTask> defined in org.gradle.kotlin.dsl我在网上找到的示例如下所示:
configurations {
asciidoctorExt
}
dependencies {
asciidoctorExt 'org.springframework.restdocs:spring-restdocs-asciidoctor'
// …
}
asciidoctor {
configurations 'asciidoctorExt'
// …
}有人能解释一下我要改变什么吗?这样我就可以升级我的asciidoctor版本了。
发布于 2022-01-07 14:57:39
我把这件事做好的方法是:
plugins {
id("org.asciidoctor.jvm.convert") version "2.4.0"
}
val asciidoctorExt by configurations.creating
dependencies {
asciidoctorExt("org.springframework.restdocs:spring-restdocs-asciidoctor:2.0.5.RELEASE")
// ...
}
val snippetsDir by extra { file("${buildDir}/generated-snippets") }
val test = tasks.named<Test>("test") {
outputs.dir(snippetsDir)
}
tasks.named<org.asciidoctor.gradle.jvm.AsciidoctorTask>("asciidoctor") {
dependsOn(test)
inputs.dir(snippetsDir)
configurations("asciidoctorExt")
setSourceDir("src/doc/asciidoc")
}https://stackoverflow.com/questions/67572163
复制相似问题