forked from loafle/openapi-generator-original
		
	* Solve Conflicts * Activate "ensure_up_to_date" script * Remove references to the "3.2.x" branch # Conflicts: # CI/pom.xml.bash # CI/pom.xml.circleci # CI/pom.xml.circleci.java7 # CI/pom.xml.ios # modules/openapi-generator-cli/pom.xml # modules/openapi-generator-gradle-plugin/gradle.properties # modules/openapi-generator-gradle-plugin/pom.xml # modules/openapi-generator-maven-plugin/pom.xml # modules/openapi-generator-online/Dockerfile # modules/openapi-generator-online/pom.xml # modules/openapi-generator/pom.xml # pom.xml
openapi-generator-maven-plugin
A Maven plugin to support the OpenAPI generator project
Usage
Add to your build->plugins section (default phase is generate-sources phase)
<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>3.1.2</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                <generatorName>java</generatorName>
                <configOptions>
                   <sourceFolder>src/gen/java/main</sourceFolder>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>
Followed by:
mvn clean compile
General Configuration parameters
- inputSpec- OpenAPI Spec file path
- language- target generation language (deprecated, replaced by- generatorNameas values here don't represent only 'language' any longer)
- generatorName- target generator name
- output- target output path (default is- ${project.build.directory}/generated-sources/swagger)
- templateDirectory- directory with mustache templates
- addCompileSourceRoot- add the output directory to the project as a source root (- trueby default)
- modelPackage- the package to use for generated model objects/classes
- apiPackage- the package to use for generated api objects/classes
- invokerPackage- the package to use for the generated invoker objects
- modelNamePrefixand- modelNameSuffix- Sets the pre- or suffix for model classes and enums
- withXml- enable XML annotations inside the generated models and API (only works with Java- languageand libraries that provide support for JSON and XML)
- configOptions- a map of language-specific parameters (see below)
- configHelp- dumps the configuration help for the specified library (generates no sources)
- ignoreFileOverride- specifies the full path to a- .openapi-generator-ignoreused for pattern based overrides of generated outputs
- generateApis- generate the apis (- trueby default)
- generateApiTests- generate the api tests (- trueby default. Only available if- generateApisis- true)
- generateApiDocumentation- generate the api documentation (- trueby default. Only available if- generateApisis- true)
- generateModels- generate the models (- trueby default)
- modelsToGenerate- A comma separated list of models to generate. All models is the default.
- generateModelTests- generate the model tests (- trueby default. Only available if- generateModelsis- true)
- generateModelDocumentation- generate the model documentation (- trueby default. Only available if- generateModelsis- true)
- generateSupportingFiles- generate the supporting files (- trueby default)
- supportingFilesToGenerate- A comma separated list of supporting files to generate. All files is the default.
- skip- skip code generation (- falseby default. Can also be set globally through the- codegen.skipproperty)
Custom Generator
Specifying a custom generator is a bit different. It doesn't support the classpath:/ syntax, but it does support the fully qualified name of the package. You can also specify your custom templates, which also get pulled in. Notice the dependency on a project, in the plugin scope. That would be your generator/template jar.
<plugin>
    <groupId>org.openapitools</groupId>
    <artifactId>openapi-generator-maven-plugin</artifactId>
    <version>${openapi-generator-maven-plugin-version}</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>${project.basedir}/src/main/resources/yaml/yamlfilename.yaml</inputSpec>
                <!-- language file, like e.g. JavaJaxRSCodegen -->
                <generatorName>com.my.package.for.GeneratorLanguage</generatorName>
                <templateDirectory>myTemplateDir</templateDirectory>
                <output>${project.build.directory}/generated-sources</output>
                <apiPackage>${default.package}.handler</apiPackage>
                <modelPackage>${default.package}.model</modelPackage>
                <invokerPackage>${default.package}.handler</invokerPackage>
            </configuration>
        </execution>
    </executions>
    <dependencies>
        <dependency>
            <groupId>com.my.generator</groupId>
            <artifactId>customgenerator</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
    </dependencies>
</plugin>
Sample configuration
- Please see an example configuration for using the plugin