Gradleプラグインを書いていますが、プラグインを使用するGradleスクリプトでapply plugin:
コマンドを機能させることができません。 Gradle 1.1を使用しています。
プラグインをclean build
でビルドしましたが、今のところ、フラットリポジトリを介してGradleビルドに追加しようとしています。これは機能しているようですが、Gradleはtest-plugin
というIDのプラグインがあることを認識していません。プラグインのsettings.gradle
のプロジェクト名はtest-plugin
であり、META-INF/gradle-plugins
のプロパティファイルもtest-plugin.properties
です。プラグインIDを指定できる他の場所がわかりません。
gradle.build
を使用しているプロジェクトのtest-plugin
ファイル:
repositories {
flatDir name: 'libs', dirs: "../build/libs"
}
dependencies {
compile 'test:test-plugin:0.1'
}
apply plugin: 'test-plugin'
Gradleからのエラー:
What went wrong:
A problem occurred evaluating root project 'tmp'.
Plugin with id 'test-plugin' not found.
プラグインJarをビルドスクリプトの依存関係として追加する必要があります。
buildscript {
repositories { flatDir name: 'libs', dirs: "../build/libs" }
dependencies { classpath 'test:test-plugin:0.1' }
}
apply plugin: "test-plugin"
プラグインをビルドスクリプトに実装する場合、2つのオプションがあります。
オプション1apply plugin: YourCustomPluginClassName
オプション2plugins { id 'your.custom.plugin.id' }
apply plugin:
は、クラス名でプラグインを指定するときに使用されます(例:apply plugin: JavaPlugin
)plugins { }
は、プラグインをそのIDで指定するときに使用されます(例:plugins { id 'Java' }
)
参照用 tutorialspointによるGradleプラグイン を参照
オプション1を選択した場合、カスタムプラグインを3つの方法のいずれかでビルドスクリプトに取り込む必要があります。
1。 Gradleビルドスクリプト内で直接コーディングできます。
2。 buildSrc(例:buildSrc/src/main/groovy/MyCustomPlugin)。
3。カスタムプラグインをbuildscript
メソッドのjarとしてインポートできます。buildscript
メソッドの詳細については、 Haki氏によるGradle Goodness を参照してください。
オプション2を選択した場合、プラグインIDを作成する必要があります。次のファイルを作成しますbuildSrc/src/main/resources/META-INF/gradle-plugins/[desired.plugin.id] .properties。コピーアンドペースト implementation-class=desired.plugin.id
を新しく作成した。propertiesファイルに追加します。置換desired.plugin.id
希望のプラグインIDを使用します。
詳細については、 Gradleによるカスタムプラグイン を参照してください。
カスタムプラグインIDが見つからないという問題もありました。私の場合、「src/main/resources/META-INF/gradle-plugins」プロパティファイルを追加するのを忘れていました。プロパティファイルの名前は、「。properties」拡張子を持つプラグインIDの名前と一致する必要があります。
ファイルには次の行が含まれている必要があります。
implementation-class=(your fully qualified plugin classpath)
これが、プラグインIDがクラス名に解決される方法の完全なメカニズムです。
さらに、前の回答で指摘したように、プラグインを依存関係として追加する必要があります。 Androidのドキュメントでは、一意のドメイン名に関連付けられた名前を使用する必要があると記載されています。 .gradle.test-plugin 'の方が良いでしょう。