示例

依赖项

添加以下依赖项

<dependency>
  <groupId>io.ebean</groupId>
  <artifactId>ebean</artifactId>
  <version>13.25.0</version>
</dependency>

<!-- Test dependencies -->
<dependency>
  <groupId>io.ebean</groupId>
  <artifactId>ebean-test</artifactId>
  <version>13.25.0</version>
  <scope>test</scope>
</dependency>

ebean-test

ebean-test 应添加为测试依赖项。这会配置 Ebean 以运行测试,包括自动使用 Postgres、MySql、Oracle、SqlServer、Hana 的 docker 容器 + 对 H2 和 SqlLite 的支持。

参考:文档 / 测试

构建 / 插件

build / plugins 部分

  1. 添加 tiles-maven-plugin 以执行构建时增强
  2. 添加或修改 maven-compiler-plugin 以注册 querybean-generator 注释处理器。
<build>
  <plugins>


     <plugin>
       <groupId>io.repaint.maven</groupId>
       <artifactId>tiles-maven-plugin</artifactId>
       <version>2.22</version>
       <extensions>true</extensions>
       <configuration>
         <tiles>
          <!-- other tiles ... -->
          <tile>io.ebean.tile:enhancement:13.25.0</tile>
        </tiles>
      </configuration>
    </plugin>


    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.10.1</version>
      <configuration>
        ...
        <annotationProcessorPaths>
           <path>
              <groupId>io.ebean</groupId>
              <artifactId>querybean-generator</artifactId>
              <version>13.25.0</version>
          </path>
          <!-- other annotation processors -->
        </annotationProcessorPaths>
      </configuration>
    </plugin>


  </plugins>
</build>

Maven 增强磁贴

上面的 maven 磁贴将在构建时增强 src/mainsrc/test 的代码。这比以传统(非磁贴)方式定义插件更简单,并且是首选方法。

如果您想以“普通”非磁贴方式指定 maven 增强插件,请参见 maven 插件

APT - querybean 生成

请注意,如果没有其他注释处理器(例如 mapstruct),那么我们可以直接将 querybean-generator 添加为依赖项(范围为 provided),而不用显式地使用 maven-compiler-plugin 注册它。

JDBC 驱动程序

添加您要使用的 JDBC 驱动程序的依赖项。

Kotlin KAPT

在使用 Kotlin 时,我们需要使用 KAPT(Kotlin 注释处理)来生成 Kotlin 查询 bean。

推荐的做法是通过 io.avaje.kapt maven 磁贴来实现,因为这使得添加其他注释处理器(例如 DInject,用于依赖项注入)变得更加容易。

将 maven 磁贴插件添加到 pom.xml 的 build / plugins 部分,其中包含以下磁贴

<plugin>
  <groupId>io.repaint.maven</groupId>
  <artifactId>tiles-maven-plugin</artifactId>
  <version>2.22</version>
  <extensions>true</extensions>
  <configuration>
    <tiles>
      <tile>io.ebean.tile:enhancement:13.25.0</tile> <!-- ebean enhancement -->

      <!-- Kotlin + Java compilers with KAPT support -->
      <tile>io.avaje.kapt:compile:1.1</tile>

      <!-- KAPT query bean generator -->
      <tile>io.avaje.kapt:querybean-generator:1.1</tile>

      <!-- other annotation processors ... -->
      <!-- <tile>io.avaje.kapt:dinject-generator:1.1</tile> -->
      <!-- <tile>io.avaje.kapt:javalin-generator:1.1</tile> -->

      <!-- other tiles ... -->

    </tiles>
  </configuration>
</plugin>

我们可以通过添加磁贴来添加其他注释处理器,例如

  • io.avaje.kapt:dinject-generator:1.1 - 用于 DInject 依赖项注入生成
  • io.avaje.kapt:javalin-generator:1.1 - 用于 Javalin 控制器生成

示例项目

Kotlin 查询 bean 生成的完整示例 pom