-
-
Notifications
You must be signed in to change notification settings - Fork 6.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add packageName configuration to maven #2429
Conversation
Thanks for the PR. I've skimmed it and it looks good. I'll need to look into unrelated CI failures before merge. |
@jimschubert I've left a comment in #2428 (comment). If that works, I think we can skip this PR. |
@wing328 Having read that linked issue, I still agree with the approach in this PR. I think we'll also want to add Looking at the top-level generators options:
We have invoker, model, and api packages which can be passed as global configurations. From a user's perspective it would be weird to pass a base package name in a different manner. I don't believe all generators handle those package options in the same way, so I feel like options for consistency would be to either move model/api/invoker package configuration out of globals or to add If we do go with this approach, we'll want to also add to the Gradle plugin. |
So what is your preferred choice? |
I raised the question with the core team, and was waiting for a response. For reference, I tested this locally with two maven files: go-gin-addl.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>go-gin-addl-project</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>sample-project</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<!-- activate the plugin -->
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.0.0-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- specify the swagger yaml -->
<inputSpec>${project.basedir}/swagger.yaml</inputSpec>
<generatorName>go-gin-server</generatorName>
<output>${project.build.directory}/generated-sources/addl</output>
<additionalProperties>
<additionalProperty>packageName=jimschubert</additionalProperty>
</additionalProperties>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
go-gin-global.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.openapitools</groupId>
<artifactId>go-gin-global-project</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>sample-project</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<!-- activate the plugin -->
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.0.0-SNAPSHOT</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- specify the swagger yaml -->
<inputSpec>${project.basedir}/swagger.yaml</inputSpec>
<generatorName>go-gin-server</generatorName>
<output>${project.build.directory}/generated-sources/global</output>
<packageName>jimschubert</packageName>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
To address the concern about global options not being used by all generators, I've opened #2556 for further discussion. I'll go ahead and merge this, then make any additional changes to the CLI and Gradle Plugin. |
* master: (133 commits) #2503: fix out-of-memory issue with nested objects with arrays with maxItems set by limiting to max. 5 example items (#2536) remove emitDefaultValue option (#2559) fix EmitDefaultValue default vallue with false (#2558) Added API Key auth to rust-server (#2459) remove initialCaps and replace with camelize (#2546) Add packageName configuration to maven (#2429) [Typescript AngularJS] fix Extra package prefix in api parameters operations (#2522) #1023 - [Scala] Use status family during response processing (#1024) Generate setters for readonly properties in server code (#1582) [JS] fix NPE for null string and improve Travis config file (#2553) [elm] Update ISO 8601 library (fixes missing time zone designator) (#2545) [csharp] update sample after #2528 (#2550) [JavaScript] fix index.js, ApiClient.js and test files generated to incorrect location (#2511) Aspnetcore nullable support (#2529) Csharp nullable support (#2528) [C++] [Qt5] Add enum support for client and server (#2339) Fixed typo in migration-from-swagger-codegen.md (#2548) [TypeScript Client] fix install Aurelia + fix use deprecated function (#2514) [KOTLIN] fix var name not correctly sanitized (#2537) Update swagger-parser to '2.0.11-OpenAPITools.org-1' (#2262) ...
I just tried 7.8.0 for Java code gen (Native). The pacakgeName has no effect in or outside configOptions element. Only way to change the base package is using apiPackage/modelPackage/invokerPackage elements inside the configOptions element. |
PR checklist
./bin/
to update Petstore sample so that CIs can verify the change. (For instance, only need to run./bin/{LANG}-petstore.sh
,./bin/openapi3/{LANG}-petstore.sh
,./bin/security/{LANG}-petstore.sh
and./bin/openapi3/security/{LANG}-petstore.sh
if updating the {LANG} (e.g. php, ruby, python, etc) code generator or {LANG} client's mustache templates). Windows batch files can be found in.\bin\windows\
.master
,. Default:3.4.x
,4.0.x
master
.Description of the PR
Add packageName configuration to maven for Kotlin client generation.
Must fix #2428
@jimschubert @dr4ke616