2

Spring REST Docs を使用して、API のドキュメントを生成しています。ここのチュートリアルからbuild.gradleにすべてを追加しましたhttp://docs.spring.io/spring-restdocs/docs/current/reference/html5/

ext {
    snippetsDir = file('build/generated-snippets')
}

test {
    outputs.dir snippetsDir
}

asciidoctor {
    attributes 'snippets': snippetsDir
    inputs.dir snippetsDir
    outputDir "build/asciidoc"
    dependsOn test
    sourceDir 'src/main/asciidoc'
}

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

私がやった後gradle buildbuild/asciidocディレクトリファイルが生成され、build/generated-snippets.

しかし、IDEA gradle タスクから実行しbootRunて localhost:8080/docs/index.html にアクセスしようとすると、404 が見つかりません。テストのために、いくつかのindex.htmlファイルをresources/staticディレクトリの下に配置しようとしましたが、ファイルbootRunにアクセスできlocalhost:8080/index.htmlますその後。

.jar ファイルを開くと、ディレクトリの下に静的ファイルが表示さBOOT-INF/classes/static/docsれるため、jar にパックされます。

多分誰かが同じ問題を抱えていましたか?

4

1 に答える 1

5

を使用するときにドキュメントが提供されるようにするには、2 つのことを行う必要がありますbootRun。1 つ目は、生成されたドキュメントを で使用されるクラスパス上の場所にコピーすることbootRunです。

task copyRestDocs(type: Copy) {
    dependsOn asciidoctor
    from "${asciidoctor.outputDir}/html5"
    into "${sourceSets.main.output.resourcesDir}/static/docs"
}

この新しいタスクはタスクに依存することに注意してくださいasciidoctor。これにより、ドキュメントがコピーされる前に生成されていることが保証されます。

次に、タスクは新しいタスクbootRunに依存する必要があります。copyRestDocs

bootRun {
    dependsOn copyRestDocs
}
于 2016-11-14T09:41:22.560 に答える