カスタム Maven プラグインは、コア Maven からのインクリメンタル ビルド サポートを使用できますか?それとも、入力などに SHA1 ハッシュを使用して、それ自体を完全に実装する必要がありますか?
たとえば /target/maven-status/maven-compiler-plugin/compile/default-compile with createdFiles.lst および inputFiles.lst に注目したため、一部のファイルを入力として読み取るコード ジェネレータ Maven プラグインなどの既存のカスタムがいくつかのファイルを生成すると考えています。出力、インクリメンタル ビルドに Maven プラグイン API を正しく使用するように変更できる可能性がありますか? インクリメンタルになるために、そのプラグイン コードが現在とは異なる方法で具体的に何をしなければならないかは不明です。これについてのドキュメントがあるように見えませんか?
既存のコードでは org.sonatype.plexus.build.incremental.BuildContext.hasDelta(File) などを使用していますが、org.sonatype.plexus.build.incremental.DefaultBuildContext.hasDelta(File) で "return true" を使用すると、これが驚くことではありません。うまくいきません... ;-) これはMavenで実装されていませんか、それとも別の方法で設定できますか? これには takari-lifecycle-plugin が必要ですか? (通常の JAR の代わりに takari-jar を使用すると、他のプラグインに干渉するため、私が求めている特定のプラグインの場合は問題になります。)
カスタム Maven プラグインは、入力ファイル間の依存関係の概念を公開するために、Maven コア API と連携する必要がある可能性が高いことを理解しました。この特定のカスタム Maven プラグインの場合、入力の一部はプロジェクトのクラスパスの依存関係から読み取られます。インクリメンタルサポートでもそれを処理できますか?
maven-compiler-plugin などの既存の Maven プラグインがインクリメンタル ビルド (Gradle 風) に苦労していることを理解しました。[1]、[2]、および [3] を参照してください。したがって、この Q は、インクリメンタル ビルドをサポートするためにカスタム Maven プラグインを拡張する方法について具体的に学習することを目的としています。
[1] http://takari.io/2014/10/16/incremental-compilation.html