お世話になっております。
Ant ベースの doma-gen から Gradle の doma-codegen-plugin への移行を進めているのですが、superclassName にプロジェクト内で定義したクラスを指定した際に ClassNotFoundException が発生する事象がありましたので、報告させていただきます。
事象
エンティティ生成時に superclassName へプロジェクト内のスーパークラス(例: base.AbstractEntity)を指定すると、以下のエラーとなりコード生成が失敗します。
[DOMAGEN0013] The class "base.AbstractEntity" to which the parameter
"superclassName" refers is not found.
java.lang.ClassNotFoundException: base.AbstractEntity
コード生成タスクの ClassLoader にプロジェクトのビルド出力が含まれていないことが原因と思われます。
やりたいこと
監査カラム等の共通フィールドをスーパークラスにまとめ、生成されるエンティティがそれを継承する形にしたいと考えています。旧 doma-gen(Ant)ではクラスパス指定で実現できていたため、doma-codegen-plugin でも同様のことができると助かります。
参考
本件について PR #294 にて修正案を作成してみました。domaCodeGen 構成のクラスパスから ClassLoader を組み立ててコード生成タスクに渡す形としており、ClassLoader を明示的に設定しない場合は従来の動作のままとなるようにしています。
アプローチとして方向性が違うようでしたらご指摘いただければ修正いたしますので、お手すきの際にご確認いただけると幸いです。