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
相关产品推荐
相关产品推荐

