Estoy escribiendo un plugin y estoy tratando de escribir un archivo dentro del directorio raíz del plugin o el directorio instalado (no estoy seguro a qué hacer referencia a esto). Parece que no puedo entender cómo obtener este valor. Hacer System.properties['base.dir']
dará como resultado la implementación del directorio raíz del proyecto Grails. Así que ahora tengo dos directorios:Plugin de Grails Obtenga la raíz del plugin o el directorio instalado
C:/PluginProject/
C:/GrailsAppThatUsesPlugin/
Es mi entendimiento de que cuando esto se convierte en un distribuye plugin de un usuario será similarmente tener dos directorios:
GRAILS_HOME/griales-version/proyectos/projectName/plugins/miPlugin/
C:/GrailsAppThatUsesPlugin/
Dentro de mi proyecto de complemento necesito crear un archivo. Debe estar dentro de mi complemento porque el archivo que estoy escribiendo necesita hacer referencia a otros archivos que proporciona mi complemento. Las pocas cosas que he probado que no han funcionado son:
System.properties['base.dir']
new File("")
- En un guión maravilloso dentro de un plugin que puede referirse simplemente a
pluginNamePluginDir
pero estoy tratando de acceder a este de un POGO. - En cuanto a todos
System.properties
ninguno de ellos tiene el directorio de plugins - grailsLa aplicación tampoco parece contener este tipo de información.
Cualquier ayuda es muy apreciada.
Pongo este código en una prueba y 'plugin.descriptor' siempre es nulo. El 'plugin' no es nulo. También si hago 'plugin.getPluginDir()' que arroja un NPE. ¿Alguna idea? ¿Debo configurar algo para que el descriptor esté disponible? ¡Gracias por tu ayuda! –
Terminé usando algo como esto: http://stackoverflow.com/questions/1163093/how-do-you-get-the-path-the-running-script-in-groovy. Me consiguió el camino que estaba buscando. Pude usar el PluginManagerHolder para obtener otra información que necesitaba. Gracias Burt! –