私は過去数日間、独自のgradleプラグインを作成していましたが(一部は学習用で、一部はレイアウトしているgraleビルドスクリプトをクリーンアップしています)、私は解決する方法を見つけられないという問題にぶつかってきました。私のプラグインjarにはme.alxandr.gradle.bintray.maven.MavenPackage
という名前のインターフェイスがありますが、インポートしようとすると、見つからないというエラーが表示されます。これは本当に奇妙です。プラグインが明らかに実行されているからです(私はそれからの出力を見ていて、タスクは登録しています)。Gradle:ビルドスクリプトのスコープ内にプラグインクラスを取得できません
project.ext.MavenPackage = MavenPackage
これだけで動作しbuildscriptにMavenPackage
可能な名前になりますが、それは完全だ原因私はそれのために任意のエディタのサポートを失う:
現在、私は次のようにこれを回避するハックをやりました動的。私が(私のプラグインから)適用されたときにパッケージをインポートするためのbuildscriptを得ることができる方法はありますか?どのようにMavenPublication
が私にそれをインポートする必要がない範囲にあるように。そうでない場合、プラグインパッケージからクラスをインポートできないのはなぜですか?
ソースコード全体はhttps://github.com/Alxandr/gradle-utilsです。あなたはここで試してみることができます:https://github.com/Alxandr/gradle-utils/blob/master/gradle/publish.gradle#L1。現在のコードはそのまま動作します(上記で説明したハックを使用しています)。これを行うためのより良い方法を探しています。
まあでより多くの情報を見つけることができます。私の質問で説明したように、プラグインは明らかに実行中のどこかのクラスパスにあります。私は[ここ](https://discuss.gradle.org/t/unable-to-get-plugin-class-in-scope-in-build-script/20145)に各スクリプトには独自のクラスパスがあると言われましたがあなたが 'apply: 'somefile.gradle''を実行するとき)、それを*クラスパスに追加する必要があります。 – Alxandr