如何在sbt中配置sbt-xjc插件添加对*.wsdl后缀文件的编译支持
错误原因
你的配置中unmanagedResourceDirectories没有指定作用域,sbt默认会去全局作用域查找该配置,但unmanagedResourceDirectories仅在Compile、Test这类配置作用域下有定义,因此触发了未定义配置的报错。
正确配置
适配原写法的修正版
sources in (Compile, xjc) ++= (unmanagedResourceDirectories in Compile).value.flatMap(dirs => (dirs ** "*.wsdl").get)
sbt 1.x 推荐的斜杠语法版(可读性更强)
Compile / xjc / sources ++= (Compile / unmanagedResourceDirectories).value.flatMap(dir => (dir ** "*.wsdl").get)
自定义路径可选配置
如果你希望将WSDL文件统一存放在独立目录(例如src/main/wsdl),可以用以下配置指定扫描路径:
Compile / xjc / sources ++= ((Compile / sourceDirectory).value / "wsdl" ** "*.wsdl").get
验证方法
配置完成后可先执行命令:sbt "show Compile / xjc / sources"
确认输出列表中包含了你需要处理的WSDL文件后,再执行sbt compile即可正常编译。
内容的提问来源于stack exchange,提问作者didil
相关产品推荐
相关产品推荐

