2016-11-09 4 views
0

Ich verwende Spring REST Docs, um Dokumentation für unsere API zu generieren. Ich habe alles hinzugefügt von Tutorial build.gradle hier http://docs.spring.io/spring-restdocs/docs/current/reference/html5/Spring Rest Dokumente generierten Inhalt nicht gefunden

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' 
    } 
} 

Nachdem ich gradle build tun kann ich sehen, dass in build/asciidoc Verzeichnisdateien erzeugt werden, und auch in build/generated-snippets.

Aber wenn ich von IDEA laufen gradle Aufgabe bootRun und versuchen localhost zuzugreifen: 8080/docs/index.html Ich bin nicht immer 404. Nur für Test fand ich habe versucht, einige index.html Datei unter resources/static Verzeichnis zu setzen und dann tun Sie bootRun und ich kann auf localhost:8080/index.html Datei danach zugreifen.

Wenn ich meine .jar-Datei öffne, kann ich statische Dateien im Verzeichnis BOOT-INF/classes/static/docs sehen, so dass sie in jar gepackt werden.

Vielleicht hatte jemand das gleiche Problem?

+0

Mit der Gradle Konfiguration, die Sie gezeigt haben, 'bootRun' nicht hat Ihre Tests ausführen oder erzeugt, um den HTML-Code aus Ihrem Asciidoctor. –

+0

Ist es möglich, es mit BootRun zu generieren? –

Antwort

1

Es gibt zwei Dinge, die Sie tun müssen, damit die Dokumentation bei der Verwendung von bootRun geliefert wird. Die erste ist die erzeugte Dokumentation in eine Position zu kopieren, die von bootRun verwendet auf dem Classpath ist:

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

Beachten Sie, dass diese neue Aufgabe auf der asciidoctor Aufgabe abhängt. Dadurch wird sichergestellt, dass die Dokumentation vor dem Kopieren generiert wurde.

Zweitens, die bootRun Aufgabe auf die neuen copyRestDocs Aufgabe abhängen:

bootRun { 
    dependsOn copyRestDocs 
}