在sbt中运行EclipseLink元模型生成器?

时间:2014-04-08 19:33:29

标签: playframework eclipselink sbt twitter4j securesocial

使用sbt,我该怎么做才能执行EclipseLink提供的注释处理器org.eclipse.persistence.internal.jpa.modelgen.CanonicalModelProcessor,以便从我的实体类生成元模型?

1 个答案:

答案 0 :(得分:0)

对于不耐烦的

  1. 克隆项目ssdemojpa

    $ git clone http://github.com/frgomes/ssdemojpa

  2. 从SBT控制台输入以下命令:

  3. zap
    reload
    metamodel
    compile
    test
    

    详细说明

    项目ssdemojpa提供了有关PlayFramework如何与SecureSocial(针对OpenID / OAuth / OAuth2身份验证)和EclipseLink(作为JPA提供商)集成的演示。演示应用程序还提供了与Twitter4J的非常简单的集成,以便从Twitter检索趋势。

    SBT脚本:https://github.com/frgomes/ssdemojpa/blob/master/project/Build.scala

    在上面引用的SBT构建脚本中,trait Metamodel负责定义任务metamodel,它处理JPA实体类并在实体类所在的同一目录中生成元模型。

    请注意,子模块models包含带注释的JPA实体类,并且必须使用Java8进行编译,因为在DAO类中使用了Java8语法(但不在实体类中)。

    请注意,注释处理器无法识别Java7和Java8引入的功能,但无论如何,只要不在实体类中使用Java7 / Java8语法,就可以使用Java7或Java8编译代码。您可以在其他类中使用Java7 / Java8语法。再次:ssdemojpa需要Java8。

    如果使用Java7或Java8编译代码,注释处理器将发出警告,但是它会生成关联的元类,因为您的实体类必须遵循Java6语法。在这种情况下,警告消息是无关紧要的,只要您已正确定义实体类,一切都应该正常工作。