修改FIXT11.xml后构建QuickFixJ异常,求正确构建方式
解决QuickFixJ替换FIXT11.xml后构建异常的问题
你遇到的核心问题是:替换FIXT11.xml后直接执行mvn package,没有触发QuickFixJ的消息代码生成流程,导致最终的jar包缺少编译后的Java类,仅保留了META-INF文件夹。
QuickFixJ的消息模块(比如quickfixj-messages-fixt11)是通过XML配置文件自动生成对应Java类的,所以替换XML后必须确保代码生成插件正常运行,下面是正确的构建步骤:
正确构建流程
清理旧构建产物
先清理之前的编译缓存和生成文件,避免旧内容干扰:mvn clean触发代码生成与完整构建
QuickFixJ的代码生成插件绑定在compile阶段,直接执行mvn install会完成代码生成、编译、测试、打包并安装到本地仓库,是最稳妥的方式:mvn install -DskipTests加
-DskipTests是为了跳过测试环节加快构建速度,若需要验证功能可以去掉这个参数。如果你只想针对
quickfixj-messages-fixt11模块单独构建(而非整个项目),可以进入该模块目录后执行命令:cd quickfixj-messages/quickfixj-messages-fixt11 mvn install -DskipTests验证构建结果
构建完成后,在quickfixj-messages-fixt11/target目录下找到生成的SNAPSHOT jar包,解压后应该能看到:META-INF文件夹quickfix/fixt11目录(包含自动生成的Java类文件)
常见问题排查
- 如果还是没有生成classes,检查XML文件格式是否正确:FIXT11.xml必须符合QuickFixJ的XML schema规范,语法错误会导致代码生成插件失败,此时可以执行
mvn install -X开启调试日志,查看具体错误提示。 - 确保你的Maven版本符合要求:建议使用Maven 3.6.x及以上版本,避免版本兼容问题。
内容的提问来源于stack exchange,提问作者Chetna rustagi
相关产品推荐
相关产品推荐

