如何基于自定义FIX50sp2数据字典重新生成QuickFIX/j源码?
解决QuickFixJ自定义FIX50SP2字典生成源码问题
1. 确认代码生成插件配置正确性
打开quickfixj-messages/quickfixj-messages-fix50sp2/pom.xml,找到quickfixj-codegenerator-maven-plugin的配置块,确保以下配置项正确:
- 明确指定自定义数据字典的路径(
<dataDictionary>) - 开启字段、消息的生成开关(
<generateFields>true</generateFields>、<generateMessages>true</generateMessages>) - 包名设置与原有FIX50SP2代码一致(比如
<packageName>quickfix.fix50sp2</packageName>)
示例配置片段:
<plugin> <groupId>org.quickfixj</groupId> <artifactId>quickfixj-codegenerator-maven-plugin</artifactId> <version>${quickfixj.version}</version> <executions> <execution> <id>generate-custom-fix50sp2</id> <goals> <goal>generate</goal> </goals> <configuration> <dataDictionary>src/main/resources/你的自定义DD文件名.xml</dataDictionary> <packageName>quickfix.fix50sp2</packageName> <generateFields>true</generateFields> <generateMessages>true</generateMessages> <generateMessageClasses>true</generateMessageClasses> <generateFieldConstants>true</generateFieldConstants> </configuration> </execution> </executions> </plugin>
2. 单独触发代码生成任务
不要直接执行mvnw clean install,先单独运行生成器目标,便于排查问题:
mvnw clean quickfixj-codegenerator:generate
3. 检查生成的源码
生成的源码默认存放在quickfixj-messages/quickfixj-messages-fix50sp2/target/generated-sources/quickfixj目录下,进入对应包路径(如quickfix/fix50sp2)查看是否存在自定义的字段、消息类。
如果此处能看到生成文件,再执行mvnw install即可完成编译打包;若仍未生成,需检查自定义字典XML的格式是否符合FIX规范,有无语法错误。
内容的提问来源于stack exchange,提问作者Grant Birchmeier
相关产品推荐
相关产品推荐

