Как восстановить исходный весенний загрузочный серверный код из swagger-codegen-maven-plugin с измененным определением swagger

Мое требование заключается в том, что я должен сгенерировать код сервера Springboot из определения чванства. Я сгенерировал код с помощью нижеприведенной команды (используя swagger-codegen-cli-2.3.1.jar).

java -jar swagger-codegen-cli-2.3.1.jar generate ^
     -i nycemoves.yml ^
     --api-package com.nyce.moves.api ^
     --model-package com.nyce.moves.model ^
     --invoker-package com.nyce.moves.invoker ^
     --group-id com.nyce.moves ^
     --artifact-id nyce-moves ^
     --artifact-version 0.0.1-SNAPSHOT ^
     -l spring ^
     --library spring-boot ^
     -o nyce-moves

Теперь мы обновили определение swagger и хотим заново сгенерировать получившиеся модели и api-invokers, для этого мы бы хотели использовать плагин maven. Изучив различные ответы в Интернете, мы наткнулись на следующие подключаемые модули, которые добавили в наш pom.xml.

<plugin>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-codegen-maven-plugin</artifactId>
            <version>2.3.1</version>
            <executions>
                <execution>
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>src/main/resources/nycemoves.yml</inputSpec>
                        <language>spring</language>
                        <basePackage>${default.package}</basePackage>
                        <modelPackage>${default.package}.model</modelPackage>
                        <apiPackage>${default.package}.api</apiPackage>
                        <invokerPackage>${default.package}.invoker</invokerPackage>
                        <configOptions>
                            <interfaceOnly>true</interfaceOnly>
                            <dateLibrary>java8</dateLibrary>
                            <java8>true</java8>
                            <library>spring-boot</library>
                            <serializableModel>true</serializableModel>
                            <sourceFolder>src/main/java</sourceFolder>                              
                        </configOptions>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Теперь, когда мы делаем пакет mvn clean, мы хотим, чтобы он обновлял / переопределял все модели, API и invokers. Но это не работает. Мы видим нижеупомянутое исключение.

[INFO] 16 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7.516 s
[INFO] Finished at: 2019-03-06T15:05:58+05:30
[INFO] Final Memory: 34M/448M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project nyce-moves: Compilation failure: Compilation failure:
[ERROR] /nyce-moves/src/main/java/com/nyce/moves/api/CommentsApi.java:[29,8] duplicate class: com.nyce.moves.api.CommentsApi
[ERROR] /nyce-moves/target/generated-sources/swagger/src/main/java/com/nyce/moves/model/PostRequest.java:[19,8] duplicate class: com.nyce.moves.model.PostRequest
...

Итак, нам действительно нужен плагин, чтобы делать следующие вещи, но мы не можем понять это. a) Когда мы запускаем пакет mvn clean, он должен восстановить весь исходный код для заглушки сервера в исходной папке, а также в целевой папке. б) Если класс уже существует, он должен переопределить их. Мы хотели бы обработать переопределение позже с помощью.swagger-codegen-ignore.

Я знаю, что есть много обсуждений по этому вопросу в stackru, но я не смог найти никакого решения, которое могло бы помочь мне здесь. Пожалуйста, помогите мне в этом или направьте меня в соответствующую ветку.

0 ответов

У меня была такая же проблема, и мне нужно было также определить выходной каталог. Вот отрывок:

<configuration>
    <language>spring</language>
    <library>spring-cloud</library>
    <configOptions>
        <sourceFolder>swagger</sourceFolder>
        <interfaceOnly>true</interfaceOnly>
        <dateLibrary>java8</dateLibrary>
    </configOptions>
    <output>${project.build.directory}/generated-sources</output>
</configuration>
Другие вопросы по тегам