Grails 3.3.6无法为命令gradle文档触发DocStart和DocEnd事件

时间:2018-06-29 13:04:13

标签: grails groovy grails-3.3.x

我创建了一个新的Grails 3.3.6应用程序。

以下文档为我的项目创建文档:Grails Docs

以上文档说要在以下参数中使用gradle docsgrails doc

  

参数:

     

-init-创建模板项目文档项目(可选)

     

-pdf-为项目文档创建PDF输出(可选)

     

触发事件:

     

DocStart-开始生成文档之前

     

DocEnd-文档生成完成后

我创建了一个脚本文件夹,并添加了具有以下内容的_Events.groovy文件。

// document-service / scripts / _Events.groovy

eventDocStart = { kind ->
    println "**************************** doc start"
}

eventDocEnd = {
    println "**************************** doc end"
}

当我运行gradle docs时。 Java Docs和groovy文档正在运行,但事件并未触发。并且--pdf参数无效。

当我运行grails doc时。我得到Command not found doc

我在做什么错了?

1 个答案:

答案 0 :(得分:1)

该文档是错误的,并且在Grails 3中不再有效。我通过拦截gradle docs命令解决了我的问题。

task generateDocs (type: GenerateDocsTask) {}

tasks.groovydoc.dependsOn(generateDocs)

class GenerateDocsTask extends DefaultTask {

    @TaskAction
    def docGenerate() {
        List urls = project.sourceSets.main.runtimeClasspath.files.collect { it.toURI().toURL() }
        URLClassLoader classLoader = new URLClassLoader(urls as URL[], (ClassLoader) null)
        def gdocGenerator = classLoader.loadClass("com.rax.DocGenerator").newInstance()
        gdocGenerator.generateGdoc(classLoader)
    }
}