我想存储我在g中使用的项目:在文件中选择,我可以在运行时读取。 到目前为止,我的解决方案是将相应的文件存储在我的项目根目录下,并通过
访问这些行new File(“myFile”)。each {selectList<<它}
这种方法在我的ide中使用run-app工作正常。但是当我生成war并将其部署到tomcat时,文件未部署,访问它的唯一方法是在部署后将其手动移动到CATALINA_HOME / bin。
我知道这是新手的方式,而不是专业的。
我确信有更好的方法,请告诉我。
彼得 多特蒙德,德国
答案 0 :(得分:0)
java应用程序的当前文件夹对于run-app和tomcat是不同的。您可以使用
打印它new File('.').absolutePath
所以方法可能是在配置中设置路径 - 生产不同,开发不同,用
创建文件new File("${getPathFromConfig()}/$myFile}")
此外,以对象格式将列表存储在应用程序的外部配置中可能更容易,因此您不需要读取文件,但可以在应用程序启动之前对其进行修改。见this
如果你使用groovy配置,那么你可以使用配置选项:
my.list=['option1', 'option2', ...]
并使用
在应用程序中阅读grailsApplication.config.my.list.each { ... }
希望这会有所帮助
答案 1 :(得分:0)
首先在app配置文件夹中创建一个目录。假设您已创建目录
conf_data.
secont现在在config.groovy文件中定义文件路径
app.demo.data.folder.location = "conf_data/demoData.xml"
最终使用
def demoDataFileLocation = new GroovyClassLoader(ConfigurationHolder.classLoader).getResource(grailsApplication.config.app.demo.data.folder.location).file.toString()
def demoDataRecords = new XmlParser().parse(demoDataFileLocation)
现在您可以在demoDatafileLocation中找到文件的路径,您可以根据需要使用