我可以使用grailsApplication.metadata[key]
从应用程序的application.properties中获取值,但我很难为加载的Grails插件获取相同内容。
我已尝试过grailsApplication.mainContext.getBean('pluginManager').allPlugins
,但该列表中的实例并未包含插件中的值' applications.properties文件。
我也试过了GrailsPluginUtils.getMetadataForPlugin(pluginName)
,但这并没有从applications.properties返回值。 (事实上,我通常会得到null。)
有没有办法在运行时获取这些值?
答案 0 :(得分:1)
def grailsApplication
,然后使用app.myprp
等内容访问您的媒体资源${grailsApplication.metadata.'app.myprp'}
。
答案 1 :(得分:0)
我不喜欢这样作为答案,所以我希望有人仍能指出我正确的方向。
由于我无法找到获取插件元数据的方法,因此我手动阅读了插件application.properties
文件(https://stackoverflow.com/a/20872275/489597之后):
import org.codehaus.groovy.grails.plugins.GrailsPluginUtils
GrailsPluginUtils.getPluginDirectories().collect {
Properties properties = new Properties()
File propertiesFile = new File("${it.getPath()}/application.properties")
propertiesFile.withInputStream {
properties.load(it)
}
properties
}
我已经向我指出,这不会在打包的WAR中工作,因为application.properties文件不会存在,除非他们被复制到WEB- INF。