SpringCloud - Add a prefix for configuration files generated
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia dai template del generatore spring-cloud che producono ApiKeyRequestInterceptor e ClientConfiguration, usando la configurazione Maven e i nomi delle classi generate indicati nell’issue come punto di ingresso. Traccia ogni riferimento generato a queste classi, quindi verifica che un prefisso configurabile rinomini i file e gli utilizzi, in modo che più client non creino più bean clientConfiguration in conflitto.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When generating a Spring Boot client with
<plugin>
<groupId>io.swagger.codegen.v3</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>3.0.34</version>
<executions>
<execution>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/myapi.yaml</inputSpec>
<output>${project.build.directory}/generated-sources/client</output>
<language>spring</language>
<library>spring-cloud</library>
<generateModels>true</generateModels>
<modelPackage>${clientBasePackage}.model</modelPackage>
<generateApis>true</generateApis>
<apiPackage>${clientBasePackage}.api</apiPackage>
<generateModelTests>false</generateModelTests>
<generateModelDocumentation>false</generateModelDocumentation>
<generateApiTests>false</generateApiTests>
<generateApiDocumentation>false</generateApiDocumentation>
<configOptions>
<configPackage>${clientBasePackage}.config</configPackage>
<dateLibrary>java11</dateLibrary>
<title>${api-name}</title>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
the generated files in the package config are always
├───config
│ ApiKeyRequestInterceptor.class
│ ClientConfiguration.class
It is a problem when I have multiple clients injected in the same Spring Boot application. In that case the application is not starting and complains about a conflict between beans with the same name (clientConfiguration).
Is it possible to add an option like MyApi allowing to have
├───config
│ MyApiApiKeyRequestInterceptor.class
│ MyApiClientConfiguration.class
And of course renaming all the usages within other generated files.
The only solution I found is to add
<plugin>
<groupId>com.coderplus.maven.plugins</groupId>
<artifactId>copy-rename-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<id>rename-ApiKeyRequestInterceptor</id>
<phase>generate-sources</phase>
<goals>
<goal>rename</goal>
</goals>
<configuration>
<sourceFile>${project.build.directory}/generated-sources/client/src/main/java/.../config/ApiKeyRequestInterceptor.java</sourceFile>
<destinationFile>${project.build.directory}/generated-sources/client/src/main/java/.../config/MyApiApiClientApiKeyRequestInterceptor.java</destinationFile>
</configuration>
</execution>
<execution>
<id>rename-ClientConfiguration</id>
<phase>generate-sources</phase>
<goals>
<goal>rename</goal>
</goals>
<configuration>
<sourceFile>${project.build.directory}/generated-sources/client/src/main/java/.../config/ClientConfiguration.java</sourceFile>
<destinationFile>${project.build.directory}/generated-sources/client/src/main/java/.../config/MyApiApiClientConfiguration.java</destinationFile>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>replacer</artifactId>
<version>1.5.3</version>
<executions>
<execution>
<id>replace-for-ApiKeyRequestInterceptor</id>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<basedir>${project.build.directory}/generated-sources/client/src/main/java/.../config</basedir>
<includes>
<include>**/*.java</include>
</includes>
<replacements>
<replacement>
<token>ApiKeyRequestInterceptor</token>
<value>MyApiApiClientApiKeyRequestInterceptor</value>
</replacement>
</replacements>
</configuration>
</execution>
<execution>
<id>replace-for-ClientConfiguration</id>
<phase>generate-sources</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<basedir>${project.build.directory}/generated-sources/client/src/main/java/...</basedir>
<includes>
<include>**/*.java</include>
</includes>
<replacements>
<replacement>
<token>ClientConfiguration</token>
<value>MyApiApiClientConfiguration</value>
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
But it's really boring...
- Lingua principale
- Mustache
- Stelle
- 299
- Fork
- 439
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di swagger-api/swagger-codegen-generators
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
[Bug]: Python/pythonFlaskConnexion generators validate map keys instead of values for additionalProperties.enumForse già presa @pvillard31 l’ha presa 208 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
Python generated code: Delete API Requests can be blocked in API Gateways when sends empty bodyAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
-
[Bug]: Bean validation doesn't work for numbers larger than Integer.MAX_VALUEForse già presa @apupier l’ha presa 296 giorni fa. ApertaBug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
swagger-api/swagger-codegen-generators#1370 · 3 commenti · 1 reazione ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
Tutte le issue di swagger-api/swagger-codegen-generators
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
ROCm/rocm-libraries#15665 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
shadps4-emu/shadPS4#5705 ·
I maintainer di solito rispondono entro 1 giorno
-
bug multiple issues priority: high
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
storytold/gridcraft#3928 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
Qiskit/qiskit-aer#2533 ·
I maintainer di solito rispondono entro 1 giorno