我正在編寫一個插件,我正在嘗試在插件的根目錄或已安裝的目錄(不確定要引用此目錄)中編寫一個文件。我似乎無法弄清楚如何獲得這個價值。執行System.properties['base.dir']
將導致實現Grails項目的根目錄。所以現在我有兩個目錄:Grails Plugin獲取插件的根目錄或已安裝的目錄
C:/ PluginProject/
C:/ GrailsAppThatUsesPlugin/
這是我的理解是,當這成爲一個分佈式的插件,用戶將同樣有兩個目錄:
GRAILS_HOME/Grails的版本/項目/項目名稱/插件/爲myplugin/
C:/ GrailsAppThatUsesPlugin/
我的插件項目中需要創建一個文件。它需要在我的插件裏面,因爲我正在寫的文件需要引用我的插件提供的其他文件。這都沒有奏效,我已經試過幾件事情:
System.properties['base.dir']
new File("")
- 在插件中Groovy腳本,你可以簡單地參考
pluginNamePluginDir
,但我想訪問此來自POGO。 - 看着所有的
System.properties
他們都沒有插件目錄 - grailsApplication似乎也不包含這種類型的信息。
任何幫助,非常感謝。
我把這段代碼放在一個測試中,'plugin.descriptor'總是空的。 'plugin'不是null。另外如果我做'plugin.getPluginDir()'拋出一個NPE。有什麼想法嗎?我是否需要配置描述符可用的內容?謝謝你的幫助! – 2012-02-13 14:28:13
我結束了使用這樣的東西:http://stackoverflow.com/questions/1163093/how-do-you-get-the-path-the-running-script-in-groovy。它爲我帶來了我期待的道路。我能夠使用PluginManagerHolder獲取我需要的其他信息。謝謝Burt! – 2012-02-13 20:43:52