2016-11-09 51 views
0

我正在使用Spring REST Docs爲我們的API生成文檔。 我已經添加了從教程這裏的build.gradle http://docs.spring.io/spring-restdocs/docs/current/reference/html5/Spring rest docs生成的內容未找到

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 build後,我可以看到,在build/asciidoc目錄中的文件在build/generated-snippets產生和也。

但是,當我從IDEA gradle這個任務​​和試圖訪問本地主機上運行:8080 /文檔/ index.html的我越來越沒有發現404只是爲了測試我試圖把一些index.html文件resources/static目錄下,然後做​​,然後我可以訪問localhost:8080/index.html文件。

如果我打開我的.jar文件,我可以看到目錄BOOT-INF/classes/static/docs下的靜態文件,因此它們被打包成jar。

也許有人有同樣的問題?

+0

有了還有你的搖籃配置,'bootRun'將不會運行測試或從Asciidoctor生成的HTML。 –

+0

是否可以使用bootRun生成它? –

回答

1

有兩件事情需要您做,以便在使用​​時提供文檔。首先是在生成的文檔複製到這是由​​使用的類路徑中的位置:

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

注意這個新任務依賴於asciidoctor任務。這可確保文檔在複製之前已經生成。

其次,​​任務必須依賴於新copyRestDocs任務:

bootRun { 
    dependsOn copyRestDocs 
} 
相關問題