From f542c5acec503e3e0f713c973ddfc1741e192ce3 Mon Sep 17 00:00:00 2001 From: Florian Dreier <dreier.florian@gmail.com> Date: Sat, 15 Oct 2022 16:33:33 +0200 Subject: [PATCH] Expose generateMetadata flag to control creation of VERSION, FILES and .openapi-generator-ignore metadata --- docs/global-properties.md | 1 + .../generator/gradle/plugin/tasks/GenerateTask.kt | 13 +++++++++++++ .../openapitools/codegen/plugin/CodeGenMojo.java | 7 +++++++ .../org/openapitools/codegen/CodegenConstants.java | 1 + .../org/openapitools/codegen/DefaultGenerator.java | 1 + 5 files changed, 23 insertions(+) diff --git a/docs/global-properties.md b/docs/global-properties.md index c2c0aab6478..00268c2fd57 100644 --- a/docs/global-properties.md +++ b/docs/global-properties.md @@ -21,6 +21,7 @@ title: Global Properties | modelDocs | Allows the user to define if model docs will be generated. Prefer using the more robust `.openapi-generator-ignore`. | `true` or `false` | | apiTests | Allows the user to define if api tests will be generated. Prefer using the more robust `.openapi-generator-ignore`. | `true` or `false` | | modelTests | Allows the user to define if model tests will be generated. Prefer using the more robust `.openapi-generator-ignore`. | `true` or `false` | +| generateMetadata | Allows the user to define if metadata files will be generated. | `true` or `false` | | withXml | Allows the user to control support of XML generated constructs, where supported | none | diff --git a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt index 82fe7e761e8..827de2a9ee1 100644 --- a/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt +++ b/modules/openapi-generator-gradle-plugin/src/main/kotlin/org/openapitools/generator/gradle/plugin/tasks/GenerateTask.kt @@ -423,6 +423,15 @@ open class GenerateTask : DefaultTask() { @Input val generateApiDocumentation = project.objects.property<Boolean>() + /** + * Defines whether metadata files should be generated. + * + * This option enables/disables generation of VERSION, FILES and .openapi-generator-ignore files. + */ + @Optional + @Input + val generateMetadata = project.objects.property<Boolean>() + /** * A special-case setting which configures some generators with XML support. In some cases, * this forces json OR xml, so the default here is false. @@ -548,6 +557,10 @@ open class GenerateTask : DefaultTask() { GlobalSettings.setProperty(CodegenConstants.API_TESTS, generateApiTests.get().toString()) } + if (generateMetadata.isPresent) { + GlobalSettings.setProperty(CodegenConstants.GENERATE_METADATA, generateMetadata.get().toString()) + } + if (withXml.isPresent) { GlobalSettings.setProperty(CodegenConstants.WITH_XML, withXml.get().toString()) } diff --git a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java index f796ca6002a..8695b77b0c9 100644 --- a/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java +++ b/modules/openapi-generator-maven-plugin/src/main/java/org/openapitools/codegen/plugin/CodeGenMojo.java @@ -405,6 +405,12 @@ public class CodeGenMojo extends AbstractMojo { @Parameter(name = "generateApiDocumentation", property = "openapi.generator.maven.plugin.generateApiDocumentation") private Boolean generateApiDocumentation = true; + /** + * Generate the metadata files such as VERSION, FILES and .openapi-generator-ignore + */ + @Parameter(name = "generateMetadata", property = "openapi.generator.maven.plugin.generateMetadata") + private Boolean generateMetadata = true; + /** * Generate the api documentation */ @@ -667,6 +673,7 @@ public class CodeGenMojo extends AbstractMojo { GlobalSettings.setProperty(CodegenConstants.MODEL_DOCS, generateModelDocumentation.toString()); GlobalSettings.setProperty(CodegenConstants.API_TESTS, generateApiTests.toString()); GlobalSettings.setProperty(CodegenConstants.API_DOCS, generateApiDocumentation.toString()); + GlobalSettings.setProperty(CodegenConstants.GENERATE_METADATA, generateMetadata.toString()); GlobalSettings.setProperty(CodegenConstants.WITH_XML, withXml.toString()); if (configOptions != null) { diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java index 2ee0c5474f8..047ee15b299 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/CodegenConstants.java @@ -30,6 +30,7 @@ public class CodegenConstants { public static final String MODEL_DOCS = "modelDocs"; public static final String API_TESTS = "apiTests"; public static final String API_DOCS = "apiDocs"; + public static final String GENERATE_METADATA = "generateMetadata"; public static final String WITH_XML = "withXml"; public static final String SKIP_FORM_MODEL = "skipFormModel"; diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java index 2da1e53f84e..bd69d773c87 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/DefaultGenerator.java @@ -208,6 +208,7 @@ public class DefaultGenerator implements Generator { generateApis = GlobalSettings.getProperty(CodegenConstants.APIS) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.APIS, null); generateModels = GlobalSettings.getProperty(CodegenConstants.MODELS) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.MODELS, null); generateSupportingFiles = GlobalSettings.getProperty(CodegenConstants.SUPPORTING_FILES) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.SUPPORTING_FILES, null); + generateMetadata = GlobalSettings.getProperty(CodegenConstants.GENERATE_METADATA) != null ? Boolean.TRUE : getGeneratorPropertyDefaultSwitch(CodegenConstants.GENERATE_METADATA, this.generateMetadata); if (generateApis == null && generateModels == null && generateSupportingFiles == null) { // no specifics are set, generate everything -- GitLab