mirror of
https://github.com/valitydev/openapi-generator.git
synced 2024-11-08 03:18:53 +00:00
029728d851
* [maven-plugin] allow for ignore file override The .swagger-codegen-ignore file is beneficial for existing source directories to provide pattern-based exclusion rules for existing source to be ignored by swagger codegen. Until now, there's been no utility other than skipOverwrite to modify the initial generation of code (either via CLI or maven plugin). This commit adds support for an ignoreFileOverride option to both the CLI and the maven plugin. Example CLI usage: ``` java -jar swagger-codegen.jar generate \ -i swagger.json -l csharp \ -o target --ignore-file-override /path/to/ignore-file ``` Example Maven Plugin configuration: ``` <build> <plugins> <plugin> <groupId>io.swagger</groupId> <artifactId>swagger-codegen-maven-plugin</artifactId> <version>2.2.2-SNAPSHOT</version> <executions> <execution> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/swagger.yaml</inputSpec> <language>csharp</language> <invokerPackage>io.swagger</invokerPackage> <modelPackage>io.swagger.models</modelPackage> <apiPackage>io.swagger.apis</apiPackage> <ignoreFileOverride>/Users/jim/projects/swagger-codegen/.sample-ignore</ignoreFileOverride> <configOptions> </configOptions> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` * [maven-plugin] update new javadocs * fix bad merge due to missing } |
||
---|---|---|
.. | ||
examples | ||
src/main/java/io/swagger/codegen/plugin | ||
pom.xml | ||
README.md |
swagger-codegen-maven-plugin
A Maven plugin to support the swagger code generation project
Usage
Add to your build->plugins
section (default phase is generate-sources
phase)
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>2.2.2-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/api.yaml</inputSpec>
<language>java</language>
<configOptions>
<sourceFolder>src/gen/java/main</sourceFolder>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
Followed by:
mvn clean compile
General Configuration parameters
inputSpec
- OpenAPI Spec file pathlanguage
- target generation languageoutput
- target output path (default is${project.build.directory}/generated-sources/swagger
)templateDirectory
- directory with mustache templatesaddCompileSourceRoot
- add the output directory to the project as a source root (true
by default)modelPackage
- the package to use for generated model objects/classesapiPackage
- the package to use for generated api objects/classesinvokerPackage
- the package to use for the generated invoker objectsmodelNamePrefix
andmodelNameSuffix
- Sets the pre- or suffix for model classes and enumsuseJaxbAnnotations
- enable Jaxb annotations inside the generated modelsconfigOptions
- 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.swagger-codegen-ignore
used for pattern based overrides of generated outputs
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>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${swagger-codegen-maven-plugin-version}</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>src/main/resources/yaml/yamlfilename.yaml</inputSpec>
<!-- language file, like e.g. JavaJaxRSCodegen shipped with swagger -->
<language>com.my.package.for.GeneratorLanguage</language>
<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