2016-06-27 16 views
4

Ich folgte der getting started guide für Spring Rest Doc Wort für Wort, aber ich kann nicht HTML aus den generierten Schnipsel bekommen.Spring Rest Doc nicht produziert HTML

Die Snippets sind in dem Verzeichnis, das ich konfiguriere (build/generated-snippets), gut erzeugt, aber ich kann kein html5/Verzeichnis mit html-Dateien sehen, die aus den Snippets generiert werden.

Die Doc at some point sagt, was die Dokumentation in dem Glas tun zu verpacken, und es ist klar, dass es einige Dateien in einem html5/Verzeichnis erwartet, aber dies wird nicht erstellt, wenn der Build läuft:

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

Was vermisse ich?

Meine Projektdateien, build.gradle:

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE' 
    } 
} 

plugins { 
    id 'org.asciidoctor.convert' version '1.5.2' 
} 

apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'spring-boot' 
apply plugin: 'jacoco' 
apply plugin: 'war' 

sourceCompatibility = 1.8 
targetCompatibility = 1.8 

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

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'org.springframework.boot:spring-boot-starter-web:1.3.5.RELEASE' 
    compile 'org.springframework.boot:spring-boot-starter-logging:1.3.5.RELEASE' 
    compile 'org.springframework.boot:spring-boot-starter-data-jpa:1.3.5.RELEASE' 
    compile 'org.springframework.boot:spring-boot-starter-data-rest:1.3.5.RELEASE' 
    compile 'org.springframework.cloud:spring-cloud-starter-aws:1.1.0.RELEASE' 
    compile 'org.postgresql:postgresql:9.4.1208' 
    compile 'commons-io:commons-io:2.5' 

    testCompile 'org.springframework.restdocs:spring-restdocs-mockmvc:1.1.0.RELEASE' 
    testCompile 'org.springframework.restdocs:spring-restdocs-core:1.1.0.RELEASE' 
    testCompile 'org.springframework.boot:spring-boot-starter-test:1.3.5.RELEASE' 
} 

jacoco { 
    toolVersion = "0.7.6.201602180812" 
    reportsDir = file("$buildDir/customJacocoReportDir") 
} 

test { 
    outputs.dir snippetsDir 
    jacoco { 
     append = false 
     destinationFile = file("$buildDir/jacoco/jacocoTest.exec") 
     classDumpFile = file("$buildDir/jacoco/classpathdumps") 
    } 
} 

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

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

    baseName = project_name 
    version = version 
    manifest { 
     attributes(
      'Implementation-Title': project_name, 
      'Implementation-Version': version 
     ) 
    } 
} 

task wrapper(type: Wrapper) { 
    gradleVersion = '2.13' 
} 

und eine einfache Testdatei I Test verwenden:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = Application.class) 
@WebAppConfiguration 
public class ApiDocumentation 
{ 
    @Rule 
    public JUnitRestDocumentation restDocumentation = new JUnitRestDocumentation("build/generated-snippets"); 

    @Autowired 
    private WebApplicationContext context; 

    private MockMvc mockMvc; 

    @Before 
    public void setUp() 
    { 
     mockMvc = MockMvcBuilders.webAppContextSetup(context) 
       .apply(documentationConfiguration(restDocumentation)) 
       .build(); 
    } 

    @Test 
    public void testIndex() throws Exception 
    { 
     mockMvc.perform(get("/").accept(MediaType.APPLICATION_JSON)) 
       .andExpect(status().isOk()) 
       .andDo(document("index")); 
    } 

} 
+1

Haben Sie eine handgeschriebene '.adoc'-Datei, die die generierten Snippets enthält? Wie läuft dein Build? Sie müssen die Asciidoctor-Task ausführen, um den HTML-Code aus den .adoc-Dateien und Snippets zu erzeugen. –

+0

Ich habe keine handschriftliche Adoc. Ich dachte, ich brauche einen, aber ich bin mir nicht sicher, wo ich das hinstellen soll, um abgeholt zu werden? Die [Dokumentation] (http://docs.spring.io/spring-restdocs/docs/1.0.x/reference/html5/#getting-started-using-the-snippets) ist dabei etwas unklar. Nachdem ich den Asciidoc Gradle Plugin-Code gegraben habe, habe ich versucht, [was die Dokumentation sagt] (http://docs.spring.io/spring-restdocs/docs/1.0.x/reference/html5/#getting-started-build- Konfiguration-Gradle) an Punkt 4 (geändert Inputs.dir zu SourceDir) und ich kann HTML-Dateien jetzt in Build/Asciidoc/HTML sehen, ist dies ein Fehler doc? – Francesco

+1

Nein, es ist kein Fehler. Wenn Sie das generierte Snippets-Verzeichnis als Ausgabe der Testaufgabe und eine Eingabe der asciidoctor-Aufgabe festlegen, kann Gradle Aufgabenabhängigkeiten ermitteln und genaue aktuelle Prüfungen durchführen. –

Antwort

5

eine .adoc Datei erstellen (wie api-guide.adoc) unter src/main/asciidoc (Maven) oder src/docs/asciidoc (Gradle) mit Bezug auf die generierten Snippets. Dann wird der HTML-Code im angegebenen Verzeichnis generiert.

+0

Wenn ich das mache, wird immer noch kein HTML produziert. Wenn ich die Datei 'build.gradle' in der asciidoctor-Sektion (inputs.dir in sourceDir geändert) ändere, kann ich etwas HTML sehen, das aus den erzeugten Snippets in' build/asciidoc/html' erzeugt wurde, aber nicht das für die 'api-Datei. guide.adoc' habe ich gerade in 'src/main/asciidoc' erstellt. – Francesco

+1

Das Asciidoctor Gradle-Plugin sieht standardmäßig in 'src/docs/asciidoc' aus, so dass Ihre handgeschriebene '.adoc'-Datei da sein sollte. –

+0

Ich habe das gleiche Problem. Das ADOC-Dokument an der richtigen Stelle, aber immer noch kein HTML. – onnoweb