我正在编写一个插件,我正在尝试在插件的根目录或已安装的目录(不确定要引用此目录)中编写一个文件。我似乎无法弄清楚如何获得这个价值。执行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