You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IntelliJ IDEA中API优先方式仅生成REST控制器与DTO模型的方法

OpenAPI Generator仅生成控制器接口与DTO的配置方案

需求明确

基于Spring Boot采用API优先开发,仅生成REST控制器接口和DTO模型,输出到src/main/java/de/test/restapi/gen目录,且生成步骤需在编译前执行,彻底排除多余构建文件。

Maven配置(推荐)

在pom.xml中添加OpenAPI Generator插件,通过参数精准控制生成范围:

<build>
    <plugins>
        <plugin>
            <groupId>org.openapitools</groupId>
            <artifactId>openapi-generator-maven-plugin</artifactId>
            <version>7.6.0</version> <!-- 使用最新稳定版 -->
            <executions>
                <execution>
                    <id>generate-rest-api</id>
                    <phase>generate-sources</phase> <!-- 绑定到编译前的源码生成阶段 -->
                    <goals>
                        <goal>generate</goal>
                    </goals>
                    <configuration>
                        <inputSpec>${project.basedir}/src/main/resources/api.yaml</inputSpec>
                        <generatorName>spring</generatorName>
                        <output>${project.basedir}</output> <!-- 输出到当前项目根目录 -->
                        <apiPackage>de.test.restapi.gen.api</apiPackage> <!-- 控制器接口包路径 -->
                        <modelPackage>de.test.restapi.gen.model</modelPackage> <!-- DTO模型包路径 -->
                        <configOptions>
                            <interfaceOnly>true</interfaceOnly> <!-- 仅生成控制器接口,不生成实现类 -->
                            <generateSupportingFiles>false</generateSupportingFiles> <!-- 禁用多余辅助文件(构建脚本、README等) -->
                            <generateApiDocumentation>false</generateApiDocumentation>
                            <generateModelDocumentation>false</generateModelDocumentation>
                            <springBootVersion>3.2.0</springBootVersion> <!-- 匹配你的Spring Boot版本 -->
                        </configOptions>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

Gradle配置

在build.gradle中配置插件及生成规则:

plugins {
    id 'org.openapi.generator' version '7.6.0'
    id 'java'
    id 'org.springframework.boot' version '3.2.0'
}

openApiGenerate {
    inputSpec = "$projectDir/src/main/resources/api.yaml"
    generatorName = "spring"
    outputDir = "$projectDir"
    apiPackage = "de.test.restapi.gen.api"
    modelPackage = "de.test.restapi.gen.model"
    configOptions = [
        interfaceOnly: "true",
        generateSupportingFiles: "false",
        generateApiDocumentation: "false",
        generateModelDocumentation: "false",
        springBootVersion: "3.2.0"
    ]
}

// 让生成任务自动在编译前执行
compileJava.dependsOn(openApiGenerate)

验证方式

  • Maven:执行mvn compile,会自动触发源码生成;或直接执行mvn generate-sources单独验证生成结果
  • Gradle:执行./gradlew compileJava,自动触发生成;或执行./gradlew openApiGenerate单独验证

完成后检查src/main/java/de/test/restapi/gen目录,只会出现api(控制器接口)和model(DTO模型)两个子目录,无任何多余构建文件。

内容的提问来源于stack exchange,提问作者plex88

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:22:26