最近幾天我一直在創建自己的gradle插件(部分用於學習,部分用於清理我已經鋪設的一些gradle構建腳本),但是我遇到了一個問題,我無法弄清楚如何解決。在我的插件jar中有一個名爲me.alxandr.gradle.bintray.maven.MavenPackage
的接口,但是當我嘗試導入它時,出現一個錯誤,說它找不到。這真的很奇怪,因爲插件顯然正在運行(我看到它的輸出,而且它的任務正在註冊)。Gradle:在構建腳本中無法獲得插件類的範圍
目前,我已經做了黑客來解決這個問題如下:
project.ext.MavenPackage = MavenPackage
這只是讓MavenPackage
在buildscript,其中工程可用的名字,但我失去了它的編輯器支持,因爲它是完全動態。有什麼辦法可以(從我的插件)得到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)每個腳本都有自己的類路徑(當你從'somefile.gradle''申請時,所以我需要將它添加到*那個* classpath中。 – Alxandr