Swagger-codegen: [Java] НСвозмоТно ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠΎΠ΄, созданный ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Maven.

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 30 нояб. 2016  Β·  7ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: swagger-api/swagger-codegen

ОписаниС

Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΠ»Π°Π³ΠΈΠ½ Maven для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΊΠΎΠ΄Π° Java. ПослС Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ ошибки ΠΏΡ€ΠΈ компиляции сгСнСрированного ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

package com.google.gson.annotations does not exist
package okio does not exist

Π― ΡƒΠ΄ΠΈΠ²Π»Π΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ оТидаю ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° _Jersey 1.18. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° JSON: Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Jackson 2.4.2_, ΠΊΠ°ΠΊ описано Π² readme - Π·Π°Ρ‡Π΅ΠΌ ΠΌΠ½Π΅ GSON ΠΈΠ»ΠΈ OKIO. Если я это сдСлаю, я Π½Π΅ смогу Π½Π°ΠΉΡ‚ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ зависимости ΠΌΠ½Π΅ Π½ΡƒΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ - я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ swagger-maven-plugin, Π½ΠΎ сборка всС Π΅Ρ‰Π΅ Π½Π΅ выполняСтся.

ВСрсия Swagger-codegen

2.2.1 - ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π» Π² 2.1.6

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ URL-адрСс Ρ„Π°ΠΉΠ»Π° Π΄Π΅ΠΊΠ»Π°Ρ€Π°Ρ†ΠΈΠΈ Swagger

https://github.com/amadeus-travel-innovation-sandbox/sandbox-content/blob/master/swagger.yml

Командная строка, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€Π°

                        <configuration>
                            <inputSpec>https://raw.githubusercontent.com/amadeus-travel-innovation-sandbox/sandbox-content/master/swagger.yml</inputSpec>
                            <language>java</language>
                            <configOptions>
                               <dateLibrary>joda</dateLibrary>
                            </configOptions>
                            <output>${project.build.directory}/generated-sources/swagger</output>
                        </configuration>

Зависимости ΠΈ свойства

<dependencies>
        <!-- dependencies are needed for the client being generated -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>${swagger-annotations-version}</version>
        </dependency>

        <!-- HTTP client: jersey-client -->
        <dependency>
            <groupId>org.glassfish.jersey.core</groupId>
            <artifactId>jersey-client</artifactId>
            <version>${jersey-version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-multipart</artifactId>
            <version>${jersey-version}</version>
        </dependency>
        <dependency>
            <groupId>org.glassfish.jersey.media</groupId>
            <artifactId>jersey-media-json-jackson</artifactId>
            <version>2.22.1</version>
        </dependency>

        <!-- JSON processing: jackson -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson-version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson-version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson-version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-joda</artifactId>
            <version>2.1.5</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>${jodatime-version}</version>
        </dependency>

        <!-- Base64 encoding that works in both JVM and Android -->
        <dependency>
            <groupId>com.brsanthu</groupId>
            <artifactId>migbase64</artifactId>
            <version>2.2</version>
        </dependency>
        <!-- test dependencies -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit-version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <swagger-annotations-version>1.5.0</swagger-annotations-version>
        <jersey-version>2.12</jersey-version>
        <jackson-version>2.4.2</jackson-version>
        <jodatime-version>2.3</jodatime-version>
        <maven-plugin-version>1.0.0</maven-plugin-version>
        <junit-version>4.8.1</junit-version>
    </properties>
ДСйствия ΠΏΠΎ Π²ΠΎΡΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈΡŽ

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ https://github.com/tadhgpearson/swagger-maven-plugin-dependencies
Π― ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Java 8 ΠΈ Maven 3.3

БвязанныС вопросы

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ β„– 3261?

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠΈΡ‚Π΅ исправлСниС

ПовСдСниС ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ GSON + OK HTTP - ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π² этом ошибка?

Question Swagger Codegen Maven Plugin

ВсС 7 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ага - подсказка находится Π² JavaClientCodegen:56 ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ Π² # 3919

CliOption libraryOption = new CliOption(CodegenConstants.LIBRARY, "library template (sub-template) to use"); libraryOption.setEnum(supportedLibraries); // set okhttp-gson as the default libraryOption.setDefault("okhttp-gson"); cliOptions.add(libraryOption); setLibrary("okhttp-gson");

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (я ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽ ДТСксон / ДТСрси, Π½ΠΎ это всСго лишь ΠΌΠΎΠ΅ нСбольшоС ΠΌΠ½Π΅Π½ΠΈΠ΅), Ρ‚ΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄ΠΎΠ³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ maven, ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ я ΠΌΠΎΠ³Ρƒ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π½ΡŒΡˆΠ΅ Π±Ρ‹Π»ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ (это jersey1 ?)

Π₯ΠΎΡ€ΠΎΡˆΠΎ - ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ эту ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, просмотрСв ΠΊΠΎΠ΄ ΠΈ прСдоставив Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ запрос Π½Π° пСрСнос для обновлСния Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ. НадСюсь, это ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚!

НСдавно я ΠΎΠ±Π½ΠΎΠ²ΠΈΠ» 2.1.6 Π΄ΠΎ 2.2.1, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΠ½Π΅ понадобилась новая функция "templateDirectory", которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 2.2.1. Π½ΠΎ ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ я это сдСлал, я ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽ Ρ‚Π°ΠΊΠΈΠ΅ ΠΆΠ΅ ошибки компилятора. ΠΊΠ°ΠΊ Ρ‚Ρ‹ Ρ€Π΅ΡˆΠΈΠ» это? ΠΏΠΎΠΌΠΎΡ‰ΡŒ!

Π΅ΡΡ‚ΡŒ Π»ΠΈ способ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ jersy ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ GSON ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ?

@aparnarus : ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ jersey1 , ΠΊΠ°ΠΊ описано Π² Ρ„Π°ΠΉΠ»Π΅ readme.

Бпасибо! Π― Π½Π΅ ΡƒΠ²Π΅Ρ€Π΅Π½, ΠΊΠ°ΠΊ я это пропустил, Π½ΠΎ Π΄Π°, это сработало.

@aparnarus : ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ jersey1 , ΠΊΠ°ΠΊ описано Π² Ρ„Π°ΠΉΠ»Π΅ readme.

<build> <plugins> <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/swagger.json</inputSpec> <language>java</language> <output></output> <apiPackage>it.eng.sil.scoop</apiPackage> <modelPackage>it.eng.sil.ws.scoop.client.model</modelPackage> <generateModels>true</generateModels> <generateApis>false</generateApis> <generateApiTests>false</generateApiTests> <generateApiDocumentation>false</generateApiDocumentation> <generateSupportingFiles>false</generateSupportingFiles> <generateModelDocumentation>false</generateModelDocumentation> **<library>jersey1</library>** <configOptions> <dateLibrary>java8</dateLibrary> <sourceFolder>src/main/java</sourceFolder> </configOptions> </configuration> </execution> </executions> </plugin> </plugins> </build>

это Ρ€Π΅ΡˆΠΈΠ»ΠΎ для мСня

ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ спасибо

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ