0

我在 scala 中有一个大的 GAE(谷歌应用程序引擎)项目,并结合了 java。我有带有 scala 插件的 intellij 11。

我将战争爆炸添加到服务器配置中,但是当我尝试编译时,失败了。我唯一的线索是:

error while loading CrawlQuery, class file 'very/long/path/Foo.class' is broken
(Scala class file does not contain Scala annotation)

我检查了信息,看起来问题是@JsonTypeInfo 的一些注释: https ://issues.scala-lang.org/browse/SI-5165 failed in scala 2.9.1

我从 2.9.1 更改为 2.9.2 但不起作用。(我下载了一个 scala-compiler.2.9.2.jar 并作为全局库添加到项目中)

另外,我从http://www.scala-lang.org/node/309下载了 scala 库,并创建了一个虚拟项目以将其设置为全局库,如解释:使用 IntelliJ 设置 scala

我的一位朋友使用 Eclipse 编译同一个项目,使用插件http://scala-ide.org/并为他工作。

4

2 回答 2

1

在检查了一些解决方法之后,我们的解决方案是创建一个带有 jackson 符号的接口,并作为 mixint 添加到类中:

import com.fasterxml.jackson.annotation.JsonTypeInfo;

@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")
public interface JsonTypeMixin {

}

并在实施中:

 objectMapper.addMixInAnnotations(classOf[Post], classOf[JsonTypeMixin])
于 2012-12-20T15:10:10.327 回答
0

您还应该告诉 IntelliJ 使用您下载的新 Scala 编译器:http: //confluence.jetbrains.net/download/attachments/12353606/new_project4.png

于 2012-08-31T07:46:59.233 回答