diff options
author | Liam Fallon <liam.fallon@est.tech> | 2021-07-20 11:55:15 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2021-07-20 11:55:15 +0000 |
commit | 8bd2403907becf8a6d246408434fbceaa30ba745 (patch) | |
tree | 258ebff1647b7d9e820fbd359148236402cbae8a /integration | |
parent | 561c0a8f068a246438509058f8ecf080751e6b83 (diff) | |
parent | 123321473628cbacd35963f4f30bf2ab621fd3b7 (diff) |
Merge "Add profile for generating Swagger documents"
Diffstat (limited to 'integration')
-rw-r--r-- | integration/pom.xml | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/integration/pom.xml b/integration/pom.xml index 5380862d..462d1cf4 100644 --- a/integration/pom.xml +++ b/integration/pom.xml @@ -36,6 +36,8 @@ <properties> <java.version>11</java.version> + <!-- NOTE: For RELEASE/SNAPSHOT always set to the project version --> + <version.parent.resources>3.4.0-SNAPSHOT</version.parent.resources> <version.logback>1.2.3</version.logback> <version.dmaap>1.1.12</version.dmaap> <version.powermock>2.0.9</version.powermock> @@ -72,6 +74,12 @@ <dependencyManagement> <dependencies> <dependency> + <groupId>org.onap.policy.parent</groupId> + <artifactId>policy-parent-resources</artifactId> + <version>${version.parent.resources}</version> + </dependency> + + <dependency> <groupId>jakarta.validation</groupId> <artifactId>jakarta.validation-api</artifactId> <version>${version.jakarta-api}</version> @@ -857,6 +865,162 @@ </pluginManagement> </build> </profile> + <profile> + <id>generateSwaggerDocs</id> + <activation> + <property> + <name>!skipTests</name> + </property> + </activation> + <build> + <plugins> + <!-- Read the swagger.json file and the definition from SwaggerConfig.java; generate + a list of .adoc files containing the APIs info in more structured way --> + <plugin> + <groupId>io.github.swagger2markup</groupId> + <artifactId>swagger2markup-maven-plugin</artifactId> + <version>1.3.3</version> + <dependencies> + <dependency> + <groupId>io.github.swagger2markup</groupId> + <artifactId>swagger2markup-import-files-ext</artifactId> + <version>1.3.3</version> + </dependency> + <dependency> + <groupId>io.github.swagger2markup</groupId> + <artifactId>swagger2markup-spring-restdocs-ext</artifactId> + <version>1.3.3</version> + </dependency> + </dependencies> + <configuration> + <swaggerInput>${project.build.directory}/swagger/swagger.json</swaggerInput> + <outputDir>${project.build.directory}/asciidoc/generated</outputDir> + <config> + <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage> + </config> + </configuration> + <executions> + <execution> + <phase>${swagger.generation.phase}</phase> + <goals> + <goal>convertSwagger2markup</goal> + </goals> + </execution> + </executions> + </plugin> + + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <executions> + <execution> + <id>unpack-swagger-asciidoc</id> + <phase>${swagger.generation.phase}</phase> + <goals> + <goal>unpack</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>org.onap.policy.parent</groupId> + <artifactId>policy-parent-resources</artifactId> + <type>jar</type> + <overWrite>true</overWrite> + <outputDirectory>${project.build.directory}</outputDirectory> + </artifactItem> + </artifactItems> + <includes>asciidoc/**</includes> + <outputDirectory>${project.build.directory}</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Run the generated asciidoc through Asciidoctor to generate other documentation + types, such as PDFs or HTML5 --> + <plugin> + <groupId>org.asciidoctor</groupId> + <artifactId>asciidoctor-maven-plugin</artifactId> + <version>1.5.7.1</version> + <dependencies> + <dependency> + <groupId>org.asciidoctor</groupId> + <artifactId>asciidoctorj-pdf</artifactId> + <version>1.5.0-alpha.10.1</version> + </dependency> + </dependencies> + <configuration> + <sourceDirectory>${project.build.directory}/asciidoc</sourceDirectory> + <sourceDocumentName>swagger.adoc</sourceDocumentName> + <attributes> + <doctype>book</doctype> + <toc>left</toc> + <toclevels>3</toclevels> + <numbered /> + <hardbreaks /> + <sectlinks /> + <sectanchors /> + <generated>${project.build.directory}/asciidoc/generated</generated> + </attributes> + </configuration> + + <executions> + <execution> + <id>output-html</id> + <phase>${swagger.generation.phase}</phase> + <goals> + <goal>process-asciidoc</goal> + </goals> + <configuration> + <backend>html5</backend> + <outputDirectory>${project.build.directory}/swagger</outputDirectory> + </configuration> + </execution> + <execution> + <id>output-pdf</id> + <phase>${swagger.generation.phase}</phase> + <goals> + <goal>process-asciidoc</goal> + </goals> + <configuration> + <backend>pdf</backend> + <outputDirectory>${project.build.directory}/swagger</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + + <!-- Create a tarball for Swagger documents --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <dependencies> + <dependency> + <groupId>org.onap.policy.parent</groupId> + <artifactId>policy-parent-resources</artifactId> + <version>${version.parent.resources}</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>generate-swagger-tar</id> + <phase>${swagger.generation.phase}</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <descriptorRefs> + <descriptorRef>swagger-docs</descriptorRef> + </descriptorRefs> + <finalName>${project.artifactId}</finalName> + </configuration> + </execution> + </executions> + </plugin> + + </plugins> + </build> + </profile> </profiles> <build> |