IntelliJ中Maven项目用cxf-xjc-plugin无法从XSD生成Java类求助
问题排查方案
- 首先修正XSD路径错误:你当前配置里的xsd路径以
/开头,属于系统绝对路径,无法匹配项目内的文件,需要去掉开头的/使用相对路径,或者增加项目根目录变量前缀,修改为:<xsd>${project.basedir}/src/main/resources/BulkValuations.xsd</xsd> <xsd>${project.basedir}/src/main/resources/TPSData.xsd</xsd> - 显式配置生成参数,避免默认值不生效:在每个
xsdOption节点下增加生成包名、输出目录配置,明确生成规则,示例:<xsdOption> <xsd>${project.basedir}/src/main/resources/BulkValuations.xsd</xsd> <generatePackage>com.yourproject.bulkvaluations</generatePackage> <outputDir>${project.build.directory}/generated-sources/cxf</outputDir> </xsdOption> - 手动执行Maven命令排查报错:打开终端进入项目根目录,执行
mvn generate-sources,查看控制台输出的日志,确认是否存在XSD语法错误、依赖缺失、文件找不到等明确报错信息,比IDEA图形化操作更容易定位问题。 - 检查IDEA Maven配置:确认IDEA没有开启Maven离线模式,本地仓库已经完整下载
org.apache.cxf:cxf-xjc-plugin:3.3.1版本的插件包,多模块项目需确认操作的模块和修改pom的模块一致。 - 若执行命令成功生成类,但IDEA不识别generated-sources目录,可手动右键点击该目录,选择「Mark Directory as -> Generated Sources Root」即可。
修正后完整配置参考
<build> <plugins> <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-xjc-plugin</artifactId> <version>3.3.1</version> <executions> <execution> <id>xjc</id> <phase>generate-sources</phase> <goals> <goal>xsdtojava</goal> </goals> <configuration> <xsdOptions> <xsdOption> <xsd>${project.basedir}/src/main/resources/BulkValuations.xsd</xsd> <generatePackage>com.yourproject.bulkvaluations</generatePackage> <outputDir>${project.build.directory}/generated-sources/cxf</outputDir> </xsdOption> <xsdOption> <xsd>${project.basedir}/src/main/resources/TPSData.xsd</xsd> <generatePackage>com.yourproject.tpsdata</generatePackage> <outputDir>${project.build.directory}/generated-sources/cxf</outputDir> </xsdOption> </xsdOptions> </configuration> </execution> </executions> </plugin> </plugins> </build>
内容的提问来源于stack exchange,提问作者user3417479
相关产品推荐
相关产品推荐

