我正在使用DSL-Json并希望使用DSlJson的serialize()序列化一个类对象。我在MAC上安装了Mono,这样我在构建过程中就不会错过任何东西。 maven构建大部分时间都挂起,我看到以下错误:
/Users/<workspace_path>/DSLIntegration/target/classes/dsl_json/json/ExternalSerialization.java:[869,81] a.b.c.Example.Model.**Abstract is abstract; cannot be instantiated**
/Users/<workspace_path>/DSLIntegration/target/classes/dsl_json/json/ExternalSerialization.java:[877,73] a.b.c.Example.Model.**Abstract is abstract; cannot be instantiated**
我使用的是与DSL-Json的Github链接相同的代码:[https://github.com/ngs-doo/dsl-json]
有人可以帮我解决这个错误吗? 感谢
答案 0 :(得分:0)
所以似乎
public Abstract abs;
让你悲伤。如果您没有最新的数据绑定编译器,这可能是唯一可能的。如果是这种情况,请尝试注释掉该属性(并清理引用它的代码)以查看它是否在没有抽象类功能的情况下工作(这在旧版本中应该得到支持)。
如果它在这种情况下工作,很可能Maven没有下载最新的编译器(除非另有说明,否则它应该这样做。)
您可以从https://compiler.dsl-platform.com:8443/platform/download/dsl-compiler.zip
手动下载并使用
在pom.xml中指定它<configuration>
<annotationProcessors>
<annotationProcessor>com.dslplatform.json.CompiledJsonProcessor</annotationProcessor>
</annotationProcessors>
<compilerArguments>
<Adsljson.compiler>path_to_compiler/dsl-compiler.exe</Adsljson.compiler>
</compilerArguments>
</configuration>
如果您指定了错误的路径,Maven将阻止提示,因此您应该首先从控制台尝试。
我无法在MAC上重现您的问题,但我添加了详细的日志记录选项来调试此类问题。尝试将处理器依赖关系更新到v0.9并启用DEBUG日志记录以获取详细信息:https://github.com/ngs-doo/dsl-json/blob/master/examples/Maven/pom.xml#L35 请注意,javac输出在Maven中不可见,因此请尝试在显示javac输出的IntelliJ中进行编译。