代码之家  ›  专栏  ›  技术社区  ›  springbootlearner

对Java模型对象的轻蔑[复制]

  •  0
  • springbootlearner  · 技术社区  · 6 年前

    我需要在eclipse中使用swagger codegen插件(对于maven)生成一个服务器存根代码。你能帮忙怎么做吗?以及需要什么样的配置(在pom.xml中)。

    0 回复  |  直到 6 年前
        1
  •  3
  •   rajesh reddy SR    6 年前

    我被发现了这个答案。您不需要像下面这样更改pom.xml。

    XML。

    <properties>
               <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
               <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
               <java.version>1.8</java.version>
               <version.swagger.codegen>2.2.1</version.swagger.codegen>
               <yaml.file>${project.basedir}/src/main/resources/Api.yaml</yaml.file>
               <generated-sources-path>${project.build.directory}/generated-sources</generated-sources-path>
               <generated-sources-java-path>main/java</generated-sources-java-path>
           </properties>
    
    <build>
               <plugins>
                   <plugin>
                       <groupId>org.springframework.boot</groupId>
                       <artifactId>spring-boot-maven-plugin</artifactId>
                   </plugin>
                   <plugin>
                       <groupId>io.swagger</groupId>
                       <artifactId>swagger-codegen-maven-plugin</artifactId>
                       <version>${version.swagger.codegen}</version>
                       <configuration>
                           <inputSpec>${yaml.file}</inputSpec>
                           <configOptions>
                               <sourceFolder>${generated-sources-java-path}</sourceFolder>
                           </configOptions>
                           <output>${generated-sources-path}</output>
                       </configuration>
                       <executions>
                           <execution>
                               <id>generate-swagger-spring</id>
                               <phase>generate-sources</phase>
                               <goals>
                                   <goal>generate</goal>
                               </goals>
                               <configuration>
                                   <language>spring</language>
                                   <modelPackage>${project.groupId}.swagger.model</modelPackage>
                                   <apiPackage>${project.groupId}.swagger.api</apiPackage>
                                   <invokerPackage>${project.groupId}.swagger.invoker</invokerPackage>
                               </configuration>
                           </execution>
                       </executions>
                   </plugin>        
                   <plugin>
                       <groupId>org.codehaus.mojo</groupId>
                       <artifactId>build-helper-maven-plugin</artifactId>
                       <executions>
                           <execution>
                               <id>add-generated-source</id>
                               <phase>initialize</phase>
                               <goals>
                                   <goal>add-source</goal>
                               </goals>
                               <configuration>
                                   <sources>
                                       <source>${generated-sources-path}/${generated-sources-java-path}</source>
                                   </sources>
                               </configuration>
                           </execution>
                       </executions>
                   </plugin>                
               </plugins>   
    
           <pluginManagement>
               <plugins>
                   <plugin>
                       <groupId>org.eclipse.m2e</groupId>
                       <artifactId>lifecycle-mapping</artifactId>
                       <version>1.0.0</version>
                       <configuration>
                           <lifecycleMappingMetadata>
                               <pluginExecutions>
                                   <pluginExecution>
                                       <pluginExecutionFilter>
                                           <groupId>io.swagger</groupId>
                                           <artifactId>swagger-codegen-maven-plugin</artifactId>
                                           <versionRange>[${version.swagger.codegen},)</versionRange>
                                           <goals>
                                               <goal>generate</goal>
                                           </goals>
                                       </pluginExecutionFilter>
                                       <action>
                                           <execute />
                                       </action>
                                   </pluginExecution>
                               </pluginExecutions>
                           </lifecycleMappingMetadata>
                       </configuration>
                   </plugin>
               </plugins>
           </pluginManagement>          
           </build>
    
        3
  •  0
  •   Mikro Koder    6 年前
    <!-- Swagger -->
    <plugin>
        <groupId>io.swagger</groupId>
        <artifactId>swagger-codegen-maven-plugin</artifactId>
        <version>2.3.1</version>
        <executions>
            <execution>
                <id>contract-service</id>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <inputSpec>${basedir}/src/main/resources/swagger/rest-data-exchange-format.yaml</inputSpec>
                    <artifactId>contract-service</artifactId>
                    <output>${basedir}/target/generated-sources</output>
                    <language>spring</language>
                    <modelPackage>ru.payhub.rest.v1.model</modelPackage>
                    <apiPackage>ru.payhub.rest.v1.api</apiPackage>
                    <!-- <invokerPackage>ru.payhub.rest.v1.handler</invokerPackage> -->
                    <generateSupportingFiles>false</generateSupportingFiles>
                    <configOptions>
                        <sourceFolder>src/main/java</sourceFolder>
                        <interfaceOnly>true</interfaceOnly>
                        <library>spring-boot</library>
                        <dateLibrary>${generator.datelibrary}</dateLibrary>
                        <configPackage>ru.payhub.config</configPackage>
                        <singleContentTypes>true</singleContentTypes>
                    </configOptions>
                </configuration>
            </execution>
        </executions>
    </plugin>
    

    官方参数说明 here

    夸张的语法规范 here

    在这个示例maven插件中,used swagger data model file(yaml)生成模型类,以便在控制器中使用它。