{"id":13565066,"url":"https://github.com/int128/gradle-swagger-generator-plugin","last_synced_at":"2025-05-16T04:00:17.685Z","repository":{"id":11470245,"uuid":"69774418","full_name":"int128/gradle-swagger-generator-plugin","owner":"int128","description":"Gradle plugin for OpenAPI YAML validation, code generation and API document publishing","archived":false,"fork":false,"pushed_at":"2024-10-24T14:26:22.000Z","size":8781,"stargazers_count":304,"open_issues_count":41,"forks_count":66,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-29T21:02:55.987Z","etag":null,"topics":["gradle-plugin","groovy","openapi","redoc","swagger","swagger-codegen","swagger-ui"],"latest_commit_sha":null,"homepage":"","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/int128.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-10-02T02:15:34.000Z","updated_at":"2024-10-27T19:10:38.000Z","dependencies_parsed_at":"2023-12-21T19:14:56.995Z","dependency_job_id":"8235ce61-4637-47fb-8ca9-a8d02d61313b","html_url":"https://github.com/int128/gradle-swagger-generator-plugin","commit_stats":{"total_commits":362,"total_committers":19,"mean_commits":19.05263157894737,"dds":0.4530386740331491,"last_synced_commit":"e89aa62936bae3762615f3affda9a2cca2513a88"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fgradle-swagger-generator-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fgradle-swagger-generator-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fgradle-swagger-generator-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fgradle-swagger-generator-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/int128","download_url":"https://codeload.github.com/int128/gradle-swagger-generator-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464890,"owners_count":22075570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gradle-plugin","groovy","openapi","redoc","swagger","swagger-codegen","swagger-ui"],"created_at":"2024-08-01T13:01:40.196Z","updated_at":"2025-05-16T04:00:17.561Z","avatar_url":"https://github.com/int128.png","language":"Groovy","funding_links":[],"categories":["Groovy"],"sub_categories":[],"readme":"# Gradle Swagger Generator Plugin [![build](https://github.com/int128/gradle-swagger-generator-plugin/actions/workflows/build.yaml/badge.svg)](https://github.com/int128/gradle-swagger-generator-plugin/actions/workflows/build.yaml) [![Gradle Status](https://gradleupdate.appspot.com/int128/gradle-swagger-generator-plugin/status.svg)](https://gradleupdate.appspot.com/int128/gradle-swagger-generator-plugin/status)\n\n## Table of content\n\n- [Introduction](#introduction)\n- [Code Generation](#code-generation)\n- [Document Generation](#document-generation)\n  - [Swagger UI](#swagger-ui)\n  - [ReDoc](#redoc)\n  - [HTML](#html)\n- [Recipes](#recipes)\n  - [Use configuration file](#use-configuration-file)\n  - [Build generated code](#build-generated-code)\n  - [Validate YAML before code generation](#validate-yaml-before-code-generation)\n  - [Selective generation](#selective-generation)\n  - [Use custom template](#use-custom-template)\n  - [Use custom generator class](#use-custom-generator-class)\n  - [Externalize template or generator class](#externalize-template-or-generator-class)\n  - [Use multiple sources](#use-multiple-sources)\n  - [Switch version of Swagger Codegen](#switch-version-of-swagger-codegen)\n  - [Configure Swagger UI](#configure-swagger-ui)\n- [Compatibility](#compatibility)\n  - [Swagger Codegen v3 and Java 16+](#swagger-codegen-v3-and-java-16)\n- [Settings](#settings)\n  - [Task type `ValidateSwagger`](#task-type-validateswagger)\n  - [Task type `GenerateSwaggerCode`](#task-type-generateswaggercode)\n  - [Task type `GenerateSwaggerUI`](#task-type-generateswaggerui)\n  - [Task type `GenerateReDoc`](#task-type-generateredoc)\n- [Contributions](#contributions)\n\n\n## Introduction\n\nThis is a Gradle plugin for the following tasks:\n\n- Validate an OpenAPI YAML.\n- Generate source from an OpenAPI YAML using [Swagger Codegen v2/v3](https://github.com/swagger-api/swagger-codegen) and [OpenAPI Generator v3](https://github.com/OpenAPITools/openapi-generator).\n- Generate Swagger UI with an OpenAPI YAML.\n- Generate ReDoc with an OpenAPI YAML.\n\nSee also the following examples:\n\n- [Swagger UI example](https://int128.github.io/gradle-swagger-generator-plugin/examples/ui-v3/) (generated by [ui-v3/basic](/acceptance-test/projects/ui-v3/basic/build.gradle) project)\n- [ReDoc example](https://int128.github.io/gradle-swagger-generator-plugin/examples/redoc/) (generated by [redoc/basic](/acceptance-test/projects/redoc/basic/build.gradle) project)\n- [HTML document example](https://int128.github.io/gradle-swagger-generator-plugin/examples/html-codegen-v2/) (generated by [codegen-v2/html](/acceptance-test/projects/codegen-v2/html/build.gradle) project)\n- [HTML document example](https://int128.github.io/gradle-swagger-generator-plugin/examples/html-codegen-v3/) (generated by [codegen-v3/html](/acceptance-test/projects/codegen-v3/html/build.gradle) project)\n- [HTML document example](https://int128.github.io/gradle-swagger-generator-plugin/examples/html-openapi-v3/) (generated by [openapi-v3/html](/acceptance-test/projects/openapi-v3/html/build.gradle) project)\n\n\n## Code Generation\n\nCreate a project with the following build script.\n\n```groovy\nplugins {\n  id 'org.hidetake.swagger.generator' version '2.19.2'\n}\n\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n  swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.34'             // Swagger Codegen V2\n  swaggerCodegen 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.47'  // or Swagger Codegen V3\n  swaggerCodegen 'org.openapitools:openapi-generator-cli:3.3.4'     // or OpenAPI Generator\n}\n\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'spring'\n    }\n  }\n}\n```\n\nThe task generates source code into `build/swagger-code-petstore`.\n\n```\n% ./gradlew generateSwaggerCode\n:resolveSwaggerTemplate NO-SOURCE\n:generateSwaggerCodePetstore\n:generateSwaggerCode NO-SOURCE\n```\n\n\n## Document Generation\n\n### Swagger UI\n\nCreate a project with the following build script.\n\n```groovy\nplugins {\n  id 'org.hidetake.swagger.generator' version '2.19.2'\n}\n\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n  swaggerUI 'org.webjars:swagger-ui:3.52.5'\n}\n\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n  }\n}\n```\n\nThe task generates an API document as `build/swagger-ui-petstore`.\n\n```\n% ./gradlew generateSwaggerUI\n:generateSwaggerUIPetstore\n:generateSwaggerUI NO-SOURCE\n```\n\n\n### ReDoc\n\nCreate a project with the following build script.\n\n```groovy\nplugins {\n  id 'org.hidetake.swagger.generator' version '2.19.2'\n}\n\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n  }\n}\n```\n\nThe task generates an API document as `build/redoc-petstore`.\n\n```\n% ./gradlew generateReDoc\n:generateReDocPetstore\n:generateReDoc NO-SOURCE\n```\n\n\n### HTML\n\nCreate a project with the following build script.\n\n```groovy\nplugins {\n  id 'org.hidetake.swagger.generator' version '2.19.2'\n}\n\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n  swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.34'             // Swagger Codegen V2\n  swaggerCodegen 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.47'  // or Swagger Codegen V3\n}\n\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'html'  // html or html2\n    }\n  }\n}\n```\n\nThe task generates a static HTML into `build/swagger-code-petstore`.\n\n```\n% ./gradlew generateSwaggerCode\n:resolveSwaggerTemplate NO-SOURCE\n:generateSwaggerCodePetstore\n:generateSwaggerCode NO-SOURCE\n```\n\n\n## Recipes\n\nSee the example projects in [acceptance-test](acceptance-test).\n\n### Use configuration file\n\nWe can use a [JSON configuration file](https://github.com/swagger-api/swagger-codegen#customizing-the-generator) as follows:\n\n```groovy\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'spring'\n      configFile = file('config.json')\n    }\n  }\n}\n```\n\n`config.json` depends on the language and framework. For example,\n\n```json\n{\n  \"library\": \"spring-mvc\",\n  \"modelPackage\": \"example.model\",\n  \"apiPackage\": \"example.api\",\n  \"invokerPackage\": \"example\"\n}\n```\n\nRun the task with `Help` postfix to show available JSON configuration.\n\n```\n% ./gradlew generateSwaggerCodePetstoreHelp\n:generateSwaggerCodePetstoreHelp\n=== Available raw options\nNAME\n        swagger-codegen-cli generate - Generate code with chosen lang\n\nSYNOPSIS\n        swagger-codegen-cli generate\n                [(-a \u003cauthorization\u003e | --auth \u003cauthorization\u003e)]\n...\n\n=== Available JSON configuration for language spring:\n\nCONFIG OPTIONS\n\tsortParamsByRequiredFlag\n...\n```\n\n\n### Build generated code\n\nIt is recommended to generate code into an ephemeral directory (e.g. `build`) and exclude it from a Git repository.\nWe can compile generated code as follows:\n\n```groovy\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'spring'\n      configFile = file('config.json')\n    }\n  }\n}\n\n// Configure compile task dependency and source\ncompileJava.dependsOn swaggerSources.petstore.code\nsourceSets.main.java.srcDir \"${swaggerSources.petstore.code.outputDir}/src/main/java\"\nsourceSets.main.resources.srcDir \"${swaggerSources.petstore.code.outputDir}/src/main/resources\"\n```\n\nSee also the following examples:\n\n- [codegen-v2/java-spring](acceptance-test/projects/codegen-v2/java-spring) \n- [codegen-v3/java-spring](acceptance-test/projects/codegen-v3/java-spring)\n- [openapi-v3/java-spring](acceptance-test/projects/openapi-v3/java-spring)\n\n\n### Validate YAML before code generation\n\nIt is recommended to validate an OpenAPI YAML before code generation in order to avoid invalid code generated.\n\nIf you use OpenAPI Generator as generator, YAML validation is embeding.\n\nWe can validate a YAML as follows:\n\n```groovy\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'spring'\n      configFile = file('config.json')\n      // Validate YAML before code generation. for Swagger Codegen V2 / V3\n      dependsOn validation\n    }\n  }\n}\n```\n\n\n### Selective generation\n\nWe can control output of code generation.\nAt default everything is generated but only models and APIs are generated in the following:\n\n```groovy\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'spring'\n      configFile = file('config.json')\n      // Generate only models and controllers\n      components = ['models', 'apis']\n    }\n  }\n}\n```\n\n`components` property accepts a list of strings or map.\n\n```groovy\n// generates only models\ncomponents = ['models']\ncomponents = [models: true]\n\n// generate only User and Pet models\ncomponents = [models: ['User', 'Pet']]\ncomponents = [models: 'User,Pet']\n\n// generate only APIs (without tests)\ncomponents = [apis: true, apiTests: false]\ncomponents = [apis: true, apiTests: null]\n```\n\nSee [selective generation section](https://github.com/swagger-api/swagger-codegen#selective-generation) for details.\n\n\n### Use custom template\n\nWe can use a custom template for the code generation as follows:\n\n```groovy\n// build.gradle\nswaggerSources {\n  inputFile = file('petstore.yaml')\n  petstore {\n    language = 'spring'\n    // Path to the template directory\n    templateDir = file('templates/spring-mvc')\n  }\n}\n```\n\nSee also the following examples:\n\n- [codegen-v2/custom-template](acceptance-test/projects/codegen-v2/custom-template)\n- [codegen-v3/custom-template](acceptance-test/projects/codegen-v3/custom-template)\n- [openapi-v3/custom-template](acceptance-test/projects/openapi-v3/custom-template)\n\n\n### Use custom generator class\n\nWe can use a custom generator class for the code generation as follows:\n\n```groovy\n// build.gradle\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      // FQCN of the custom generator class\n      language = 'CustomGenerator'\n    }\n  }\n}\n\ndependencies {\n  swaggerCodegen project('generators')\n}\n\nswaggerSources*.code*.dependsOn 'generators:jar'\n```\n\n```groovy\n// generators/build.gradle (child project)\ndependencies {\n  implementation 'io.swagger:swagger-codegen-cli:2.4.24'\n}\n```\n\n```groovy\n// generators/src/main/groovy/CustomGenerator.groovy\nimport io.swagger.codegen.languages.SpringCodegen\n\nclass CustomGenerator extends SpringCodegen {\n}\n```\n\nSee also the following examples:\n\n- [codegen-v2/custom-class](acceptance-test/projects/codegen-v2/custom-class)\n- [codegen-v3/custom-class](acceptance-test/projects/codegen-v3/custom-class)\n- [openapi-v3/custom-class](acceptance-test/projects/openapi-v3/custom-class)\n\n\n### Externalize template or generator class\n\nIn some large use case, we can release a template or generator to an external repository and use them from projects.\n\n```groovy\n// build.gradle\nrepositories {\n  // Use external repository for the template and the generator class\n  maven {\n    url 'https://example.com/nexus-or-artifactory'\n  }\n  mavenCentral()\n}\n\ndependencies {\n  swaggerCodegen 'io.swagger:swagger-codegen-cli:2.4.34'\n  // Add dependency for the template\n  swaggerTemplate 'com.example:swagger-templates:1.0.0'\n  // Add dependency for the generator class\n  swaggerCodegen 'com.example:swagger-generators:1.0.0'\n}\n\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'spring'\n      // The plugin automatically extracts template JAR into below destination\n      templateDir = file(\"${resolveSwaggerTemplate.destinationDir}/spring-mvc\")\n    }\n  }\n}\n```\n\nSee also the following examples:\n\n- [codegen-v2/externalize-template](acceptance-test/projects/codegen-v2/externalize-template) and [codegen-v2/externalize-class](acceptance-test/projects/codegen-v2/externalize-class)\n- [codegen-v3/externalize-template](acceptance-test/projects/codegen-v3/externalize-template) and [codegen-v3/externalize-class](acceptance-test/projects/codegen-v3/externalize-class)\n- [openapi-v3/externalize-template](acceptance-test/projects/openapi-v3/externalize-template) and [openapi-v3/externalize-class](acceptance-test/projects/openapi-v3/externalize-class)\n\n\n\n### Use multiple sources\n\nWe can handle multiple sources in a project as follows:\n\n```groovy\n// build.gradle\nswaggerSources {\n    petstoreV1 {\n        inputFile = file('v1-petstore.yaml')\n        code {\n            language = 'spring'\n            configFile = file('v1-config.json')\n        }\n    }\n    petstoreV2 {\n        inputFile = file('v2-petstore.yaml')\n        code {\n            language = 'spring'\n            configFile = file('v2-config.json')\n        }\n    }\n}\n\ncompileJava.dependsOn swaggerSources.petstoreV1.code, swaggerSources.petstoreV2.code\nsourceSets.main.java.srcDirs \"${swaggerSources.petstoreV1.code.outputDir}/src/main/java\", \"${swaggerSources.petstoreV2.code.outputDir}/src/main/java\"\nsourceSets.main.resources.srcDirs \"${swaggerSources.petstoreV1.code.outputDir}/src/main/resources\", \"${swaggerSources.petstoreV2.code.outputDir}/src/main/resources\"\n```\n\nSee also the following examples:\n\n- [codegen-v2/multiple-sources](acceptance-test/projects/codegen-v2/multiple-sources) \n- [codegen-v3/multiple-sources](acceptance-test/projects/codegen-v3/multiple-sources)\n- [openapi-v3/multiple-sources](acceptance-test/projects/openapi-v3/multiple-sources)\n\n\n### Switch version of Swagger Codegen\n\nWe can use multiple versions of Swagger Codegen as follows:\n\n```groovy\n// build.gradle\nconfigurations {\n    swaggerCodegenV2\n    swaggerCodegenV3\n}\n\ndependencies {\n    swaggerCodegenV2 'io.swagger:swagger-codegen-cli:2.4.24'\n    swaggerCodegenV3 'io.swagger.codegen.v3:swagger-codegen-cli:3.0.30'\n}\n\nswaggerSources {\n    petstoreV2 {\n        inputFile = file('v2-petstore.yaml')\n        code {\n            language = 'spring'\n            configuration = configurations.swaggerCodegenV2\n        }\n    }\n    petstoreV3 {\n        inputFile = file('v3-petstore.yaml')\n        code {\n            language = 'spring'\n            configuration = configurations.swaggerCodegenV3\n        }\n    }\n}\n```\n\nSee also the following examples:\n\n- [codegen-v3/multiple-codegen-versions](acceptance-test/projects/codegen-v3/multiple-codegen-versions)\n- [openapi-v3/multiple-codegen-versions](acceptance-test/projects/openapi-v3/multiple-codegen-versions)\n\n\n### Configure Swagger UI\n\nWe can [configure Swagger UI](https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md)\nby overwriting [the default `index.html`](src/main/resources/swagger-ui.html) as follows:\n\n```groovy\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    ui {\n      doLast {\n        copy {\n          from 'index.html'\n          into outputDir\n        }\n      }\n    }\n  }\n}\n```\n\nYou can create an `index.html` from [the Swagger UI official one](https://github.com/swagger-api/swagger-ui/blob/master/dist/index.html).\nIt must satisfy the followings:\n\n- Put `\u003cscript src=\"./swagger-spec.js\"\u003e` in order to load a Swagger spec.\n  The plugin exports the Swagger spec as `swagger-spec.js` file while generation.\n- Set `spec: window.swaggerSpec` in `SwaggerUIBundle()` parameters.\n- Set `validatorUrl: null` in `SwaggerUIBundle()` parameters in order to turn off the validator badge.\n\nSee also the following examples:\n\n- [ui-v3/basic](acceptance-test/projects/ui-v3/basic)\n- [ui-v2/basic](acceptance-test/projects/ui-v2/basic) (if you need Swagger UI 2.x)\n\n\n## Compatibility\n\n### Swagger Codegen v3 and Java 16+\n\nTo use Swagger Codegen v3 on Java 16 or later, you need to set `jvmArgs` as follows:\n\n```groovy\nswaggerSources {\n  petstore {\n    inputFile = file('petstore.yaml')\n    code {\n      language = 'html'\n      jvmArgs = ['--add-opens=java.base/java.util=ALL-UNNAMED'] // for Swagger Codegen v3 on Java 16+\n    }\n  }\n}\n```\n\nSee [#221](https://github.com/int128/gradle-swagger-generator-plugin/issues/221) for details.\n\n\n## Settings\n\nThe plugin adds `validateSwagger`, `generateSwaggerCode`, `generateSwaggerUI` and `GenerateReDoc` tasks.\nA task will be skipped if no input file is given.\n\n\n### Task type `ValidateSwagger`\n\nThe task accepts below properties.\n\nKey           | Type              | Value                                   | Default value\n--------------|-------------------|-----------------------------------------|--------------\n`inputFile`   | File              | Swagger spec file.                      | Mandatory\n`reportFile`  | File              | File to write validation report.        | `$buildDir/tmp/validateSwagger/report.yaml`\n\nIt depends on the following JSON schema:\n\n- [OpenAPI Specification version 2.0](https://github.com/OAI/OpenAPI-Specification/blob/master/schemas/v2.0/schema.json)\n\n\n### Task type `GenerateSwaggerCode`\n\nThe task accepts below properties.\n\nKey           | Type              | Value                                   | Default value\n--------------|-------------------|-----------------------------------------|--------------\n`language`    | String            | Language to generate.                   | Mandatory\n`inputFile`   | File              | Swagger spec file.                      | Mandatory\n`outputDir`   | File              | Directory to write generated files.     | `$buildDir/swagger-code`\n`wipeOutputDir` | Boolean         | Wipe the `outputDir` before generation. | `true`\n`library`     | String            | Library type.                           | None\n`configFile`  | File              | [JSON configuration file](https://github.com/swagger-api/swagger-codegen#customizing-the-generator). | None\n`templateDir` | File              | Directory containing the template.      | None\n`components`  | List or Map       | [Components to generate](https://github.com/swagger-api/swagger-codegen#selective-generation) that is a list of `models`, `apis` and `supportingFiles`. | All components\n`additionalProperties` | Map of String, String | [Additional properties](https://github.com/swagger-api/swagger-codegen#to-generate-a-sample-client-library). | None\n`rawOptions`  | List of Strings   | Raw command line options for Swagger Codegen | None\n`configuration` | String or Configuration | Configuration for Swagger Codegen | `configurations.swaggerCodegen`\n`jvmArgs`     | List of Strings   | Arguments passed to jvm | None\n\n\n### Task type `GenerateSwaggerUI`\n\nThe task accepts below properties.\n\nKey           | Type              | Value                                   | Default value\n--------------|-------------------|-----------------------------------------|--------------\n`inputFile`   | File              | Swagger spec file.                      | Mandatory\n`outputDir`   | File              | Directory to write Swagger UI files.    | `$buildDir/swagger-ui`\n`wipeOutputDir` | Boolean         | Wipe the `outputDir` before generation. | `true`\n\nNote that `options` and `header` are no longer supported since 2.10.0.\nSee the [Migration Guide](https://github.com/int128/gradle-swagger-generator-plugin/issues/81) for details.\n\n\n### Task type `GenerateReDoc`\n\nThe task accepts below properties.\n\nKey           | Type              | Value                                   | Default value\n--------------|-------------------|-----------------------------------------|--------------\n`inputFile`   | File              | Swagger spec file.                      | Mandatory\n`outputDir`   | File              | Directory to write ReDoc files.         | `$buildDir/swagger-redoc`\n`wipeOutputDir` | Boolean         | Wipe the `outputDir` before generation. | `true`\n`scriptSrc`   | String            | URL to ReDoc JavaScript.                | `//rebilly.github.io/ReDoc/releases/latest/redoc.min.js`\n`title`       | String            | HTML title.                             | `ReDoc - $filename`\n`options`     | Map of Strings    | [ReDoc tag attributes](https://github.com/Rebilly/ReDoc#redoc-tag-attributes). | Empty map\n\n\n## Contributions\n\nThis is an open source software licensed under the Apache License Version 2.0.\nFeel free to open issues or pull requests.\n\nCI requires the following variables.\n\nEnvironment Variable        | Purpose\n----------------------------|--------\n`$GRADLE_PUBLISH_KEY`       | Publish the plugin to Gradle Plugins\n`$GRADLE_PUBLISH_SECRET`    | Publish the plugin to Gradle Plugins\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fint128%2Fgradle-swagger-generator-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fint128%2Fgradle-swagger-generator-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fint128%2Fgradle-swagger-generator-plugin/lists"}