使用TypeScript Generator Maven Plugin生成TS接口报错:未找到输入类
问题背景
在Spring Boot多模块项目中,client模块依赖server模块,配置TypeScript Generator Maven Plugin从server的DTO生成TS接口时,构建报错:
Failed to execute goal cz.habarta.typescript-generator:typescript-generator-maven-plugin:2.34.976:generate (generate-typescript) on project tflow-client: Execution generate-typescript of goal cz.habarta.typescript-generator:typescript-generator-maven-plugin:2.34.976:generate failed: No input classes found.
但控制台日志明确显示:
Found 5 classes matching pattern.
可能的解决方案
1. 先确保server模块已完成编译安装
由于client模块依赖server的DTO类,先单独编译安装server模块,再构建client:
cd tflow-server mvn clean install cd ../tflow-client mvn clean compile
2. 替换通配符匹配为显式指定类
将<classPatterns>替换为<classes>,直接列出需要生成TS接口的DTO类,避免通配符匹配可能的加载问题:
<configuration> <!-- 其他配置保持不变 --> <!-- 移除原有的classPatterns --> <!-- <classPatterns> <pattern>com.matejgeljic.taskflow.domain.dto.*</pattern> </classPatterns> --> <classes> <class>com.matejgeljic.taskflow.domain.dto.YourFirstDto</class> <class>com.matejgeljic.taskflow.domain.dto.YourSecondDto</class> <!-- 其他DTO类 --> </classes> </configuration>
3. 调整插件执行阶段
将插件执行阶段从generate-sources改为process-classes,确保所有依赖类都已编译完成:
<execution> <id>generate-typescript</id> <goals> <goal>generate</goal> </goals> <!-- 修改执行阶段 --> <phase>process-classes</phase> <configuration> <!-- 其他配置不变 --> </configuration> </execution>
4. 检查DTO类的依赖完整性
确认匹配到的5个DTO类中,是否存在引用了未在classpath中的类(比如自定义枚举、其他实体类)。如果有缺失,需要确保这些依赖类也被包含在server模块的编译输出中,或者在client模块中添加对应的依赖。
5. 尝试升级插件版本
当前使用的2.34.976版本可能存在已知bug,尝试升级到最新稳定版本,修改插件的<version>值:
<version>最新稳定版本号</version>
内容的提问来源于stack exchange,提问作者seven

