1

我在 Spring Boot (v1.4.1) 应用程序中使用 Spring Restdocs (v1.1.2)。

在 Gradle 构建文件的 jar 任务中,我将生成的输出复制到 public/docs 中:

jar {
  dependsOn asciidoctor
  from ("${asciidoctor.outputDir}/html5") {
    into 'public/docs'
  }
}

我在生成的 JAR 中看到了文档

BOOT-INF/classes/public/docs/api-guide.html

但是,当我运行 JAR 时,我似乎无法在 /docs、/public/docs 等处处理 api-guide.html。

有人可以解释我做错了什么吗?

谢谢!

- 约翰

buildscript {
    ext {
        springBootVersion = '1.4.1.RELEASE'
    }
}

plugins {
    id "org.asciidoctor.convert" version "1.5.3"
}

apply plugin: 'groovy'
apply plugin: 'spring-boot'

ext {
    snippetsDir = file('build/generated-snippets')
    springRestdocsVersion = '1.1.2.RELEASE'
}


test {
    outputs.dir snippetsDir
}

asciidoctor {
    attributes 'snippets': snippetsDir
    inputs.dir snippetsDir
    dependsOn test
}

jar {
    dependsOn asciidoctor
    from ("${asciidoctor.outputDir}/html5") {
        into 'public/docs'
    }
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-rest')
    testCompile("org.springframework.restdocs:spring-restdocs-mockmvc:${springRestdocsVersion}")
}

==================================================== ===========

这是应用程序配置:

@SpringBootApplication
@EnableJpaRepositories
@EnableScheduling
class Application {
    static void main(String[] args) {
        SpringApplication.run Application, args
    }
}

和测试配置:

@RunWith(SpringJUnit4ClassRunner)
@SpringApplicationConfiguration(classes = Application)
class ApplicationTests {
    ...
}
4

1 回答 1

1

好的,我终于弄清楚我做错了什么。我启用了 spring-boot-actuator-docs:

compile('org.springframework.boot:spring-boot-actuator-docs')

它正在“接管” /docs 路径。一旦我将生成的restdocs重新定位到不同的路径,例如

jar {
    dependsOn asciidoctor
    from ("${asciidoctor.outputDir}/html5") {
        into 'static/api'
    }
}

一切都很好。

感谢 Andy 对我的问题和非常酷的 Spring REST Docs 项目感兴趣!

于 2016-10-08T18:23:50.467 回答