如何在Maven中启用Ebean Enhancement?

我一直在使用Avaje.org ebean ORM层,但我不明白如何使用Maven启用“Ebean v2.6.0用户指南”中描述的字节码增强function。

我在Avaje.org主页上找到了一个配置示例 ,但它不起作用。 GitHub上的演示Maven样板也没有。

救命!

EBeans现在有自己的Maven插件,但我在网上找不到任何文档,所以这里有一个如何使用它的例子:

 org.avaje.ebeanorm avaje-ebeanorm-mavenenhancer ${ebean.version}   main process-classes  enhance   com.package1.**,com.package2.** debug=1 ${project.build.outputDirectory} ${project.build.outputDirectory}     

用Eclipse

如果您使用Eclipse,则需要确保它在需要时运行插件,如下所示:

         org.eclipse.m2e lifecycle-mapping 1.0.0      org.avaje.ebeanorm avaje-ebeanorm-mavenenhancer [3.3.2,)  enhance     true true           

已废除的答案

这个答案适用于非常旧版本的EBeans,请忽略它。

原创内容

Avaje页面上的示例有一些错误。

  1. 标记不正确:’process-ebean-enhancement’不是Maven生命周期,因此示例配置中的插件将无法正确运行。 正确的阶段是“流程类”。
  2. ‘classSource’参数不正确。 按照配置,ebean插件会增强测试代码中的@Entity条款,而不是生产代码。 正确的值是’$ {project.build.outputDirectory}’。
  3. 确保更新项目的包空间。 这是以下示例中的“com.mycompany。**”。

完整的配置应该是:

   org.apache.maven.plugins maven-antrun-plugin   process-ebean-enhancement process-classes         UTF-8   run     

这将增强“src / main / java / com / mycompany”及其下的所有@Entity类。

您可以通过对要检查的包进行更严格的限制来缩短执行时间。

此外,如果确实需要增强测试类,则可能需要复制此配置。 在这种情况下,对第二个块使用’proces-test-classes’阶段。

JBCP的答案是针对旧的ebean版本( org.avaje.ebeanorm )。 对于较新的版本 ( io.ebean ),您需要更改为ebean-maven-plugin

  io.ebean ebean-maven-plugin ${ebean.version}   main process-classes  enhance   com.package1.**,com.package2.** debug=1 ${project.build.outputDirectory} ${project.build.outputDirectory}     

注意: ebean插件版本应与ebean版本相同。

参考: Maven Repo , Github