35

Gradle でビルド プロセスを作成しており、Java コードを使用するプラグインを提供したいと考えています。Gradleプラグインのドキュメントに 、これが可能であると記載されています。

実装が最終的にバイトコードとしてコンパイルされれば、任意の言語でカスタム プラグインを実装できます。ここの例では、Groovy を実装言語として使用します。必要に応じて、代わりに Java または Scala を使用できます。

しかし、数時間のグーグル検索と読書の後、Java で Gradle カスタム プラグインを作成する方法についての説明をまだ見つけていません。次のようなディレクトリにコードを作成できるようです。

<rootProjectDir>/buildSrc/src/main/java/
  MyGradlePlugin.java
  MyGradleTasks.java 

しかし、問題は次のようになります。

  1. Gradle と互換性があるように Java でプラグイン クラスとタスクを実装する方法は?
  2. ビルドで使用できるように、Gradle に Java クラスとタスクを認識させるにはどうすればよいですか?

    Groovy の場合と同じように、プラグイン クラスを参照できますか?

    src/main/resources/META-INF/gradle-plugins/myjavaplugin.properties implementation-class=org.me.MyGradlePlugin

project.javaexecまたはを使用して Java コードを呼び出すことができることはわかっJavaExecていますが、ビルド プロセスの移植性が低下するのではないかと懸念しています。

4

3 に答える 3

3

プラグイン クラスはorg.gradle.api.Pluginインターフェイスを実装する必要があります。通常、タスク クラスはクラスを拡張しorg.gradle.api.DefaultTaskます。これに使用する (JVM) 言語は関係ありません。Gradle コードベースには、Java で実装された多くのプラグインとタスク クラスが含まれています。

プラグインをどのように構築して出荷するかは別の問題であり、これもほとんどどの言語が使用されているかには関係ありません。Gradle ユーザー ガイドsamples/customPlugin完全な Gradle ディストリビューションを参照してください。

于 2013-07-15T23:01:53.467 に答える