コード生成プラグイン(おまけ)

プラグインの設定

以下のような設定をbuild.gradleに記述する。 各プロパティは、生成するソースのテンプレートで使用されているので、 出力したい内容に合わせて変更すること。

apply plugin: com.bigtreetc.sample.CodeGenPlugin

codegen {
    domainProjectName = "sample-domain" // ドメインのプロジェクト名
    webProjectName = "sample-web-admin" // メインプロジェクト(SpringBootのメインメソッドを実装している)

    commonDtoPackageName = "com.bigtreetc.sample.domain.entity.common"          // IDなどの共通的なエンティティのパッケージ名
    daoPackageName = "com.bigtreetc.sample.domain.dao"                          // Daoを配置するパッケージ名
    entityPackageName = "com.bigtreetc.sample.domain.entity"                    // エンティティを配置するパッケージ名
    servicePackageName = "com.bigtreetc.sample.domain.service"                  // サービスを配置するパッケージ名
    commonServicePackageName = "com.bigtreetc.sample.domain.service"            // サービスの基底クラスを配置するパッケージ名
    exceptionPackageName = "com.bigtreetc.sample.domain.exception"              // 例外クラスを配置するパッケージ名
    webBasePackageName = "com.bigtreetc.sample.web.base"                        // コントローラー関連の基底クラスを配置するパッケージ名
    baseValidatorPackageName = "com.bigtreetc.sample.domain.validator"          // バリデーターを配置するパッケージ名
    baseControllerPackageName = "com.bigtreetc.sample.web.base.controller.html" // コントローラーの基底クラスを配置するパッケージ名
    controllerPackageName = "com.bigtreetc.sample.web.admin.controller"         // 生成するコントローラのパッケージ名
}

プラグインの実行

下記のコマンドを実行すると最低限のソースファイルが生成される。

$ cd /path/to/sample-web-admin
$ gradlew codegen -PsubSystem=system -Pfunc=employee -PfuncStr=従業員

生成ファイル一覧

以下の階層で、それぞれのソースファイルが作成される。

.
├── sample-domain
│   └── src
│       └── main
│            ├── java
│            │   └── com
│            │        └── sample
│            │             └── domain
│            │                  ├── dao
│            │                  │   └── system
│            │                  │        └── EmployeeDao.java
│            │                  ├── dto
│            │                  │   └── system
│            │                  │        └── Employee.java
│            │                  └── service
│            │                       └── system
│            │                            └── EmployeeDervice.java
│            └── resources
│                 └── META-INF
│                     └── com
│                          └── sample
│                               └── domain
│                                    └── dao
│                                         └── EmployeeDao
│                                              ├── select.sql
│                                              ├── selectAll.sql
│                                              └── selectById.sql
└── sample-web-admin
     └── src
         └── main
              ├── java
              │   └── com
              │        └── sample
              │             └── web
              │                  └── admin
              │                       └── controller
              │                            └── html
              │                                 └── system
              │                                      └── employees
              │                                           ├── EmployeeCsv.java
              │                                           ├── EmployeeForm.java
              │                                           ├── EmployeeFormValidator.java
              │                                           ├── EmployeeHtmlController.java
              │                                           └── SearchEmployeeForm.java
              └── resources
                   └── templates
                        └── modules
                             └── system
                                  └── employees
                                       ├── find.html
                                       ├── new.html
                                       └── show.html

注釈

最小限のソースのみを生成するようになっているので、 必要に応じて生成元のテンプレートを編集したり、プラグイン自体を改修しする。 テンプレートは、buildSrc/src/resources/templatesに格納されている。