Spring rest docs生成的内容未找到

时间:2016-11-09 16:33:44

标签: java spring spring-mvc spring-restdocs

我正在使用Spring REST Docs为我们的API生成文档。 我已经从这里的教程http://docs.spring.io/spring-restdocs/docs/current/reference/html5/

添加了build.gradle的所有内容
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_vertretungsplan);
    Button dlbutton = (Button) findViewById(R.id.buttondownload);
    dlbutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DownloadManager.Request request = new DownloadManager.Request(Uri.parse(myurl));
            request.setTitle("Vertretungsplan");
            request.setDescription("wird heruntergeladen");
            request.allowScanningByMediaScanner();
            request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
            String filename = URLUtil.guessFileName(myurl,null, MimeTypeMap.getFileExtensionFromUrl(myurl));
            request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS + "Schul-App",filename);
            DownloadManager manager =(DownloadManager) this.getSystemService(Context.DOWNLOAD_SERVICE);
            manager.enqueue(request);
        }
    });

在我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

但是当我从IDEA gradle任务build/generated-snippets运行并尝试访问localhost时:8080 / docs / index.html我找不到404.仅仅是为了测试我试图放一些{{1在bootRun目录下的文件,然后执行index.html,之后我可以访问resources/static文件。

如果我打开我的.jar文件,我可以看到目录bootRun下的静态文件,因此它们被打包到jar中。

也许有人有同样的问题?

1 个答案:

答案 0 :(得分:3)

您需要执行两项操作,以便在使用bootRun时提供文档。第一种是将生成的文档复制到bootRun使用的类路径上的位置:

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

请注意,此新任务取决于asciidoctor任务。这可确保文档在复制之前生成。

其次,bootRun任务必须依赖于新的copyRestDocs任务:

bootRun {
    dependsOn copyRestDocs
}