Wie verlängere ich den classpath für "grails run-app"
Ich habe Folgendes in meine Config.groovy-Datei:
grails.config.locations = [ "classpath:env.groovy" ]
Nun, wo genau soll ich den Platz "env.groovy" wie, es ist auf der CLASSPATH während grails run-app? Die Dokumentation ist hier schmerzlich vermisst.
Ich bin in der Lage, get it to work auf die Reine Kommandozeilen-Legend "env.groovy" in " $APP_HOME/etc und dann läuft:
$ grails -classpath ./etc run-app
Scheint das ein wenig hackish, aber ich kann damit Leben... Aber, ich bin nicht in der Lage zu bekommen, eine solche Konfiguration zu arbeiten, wenn ich starte run-app mit der Grails eclipse-plugin (STS):
Unable to load specified config location classpath:env.groovy : class path resource [env.groovy] cannot be opened because it does not exist
Ich habe gesehen, related posts hier, hier, hier, und hier aber die Antworten waren unerfüllten.
Ich bin auf der Suche nach einem CLASSPATH-basierte Lösung, die die Arbeit mit 'run-app" in Entwicklung-Modus (beide Befehlszeile und von eclipse). Ich weiß, wie man die CLASSPATH für meine Bereitstellung servlet-container, so dass ist nicht ein Problem.
- entschuldigen Sie mich, aber ich verstehe wirklich nicht, warum wollen Sie hier arbeiten? Warum wird nicht einfach Config.groovy für Entwicklung statt?
- Weil Config.groovy ist geprüft in der Quellcodeverwaltung. Ich möchte eine Datei, die ich setzen kann, Umwelt-spezifische Eigenschaften, die in (einzelne Entwickler-spezifische Datenbank-Verbindungszeichenfolgen, etc.) wird nicht geprüft werden, die in der Quellcodeverwaltung.
- Gute Idee.Ich persönlich habe eine Art von Schwierigkeiten mit den Konflikten bei der übermittlung der Datei.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eric, die Art, wie wir getan haben, ist dies durch die Angabe einer Java system property mit dem Speicherort der config-Datei und dann schnappen wir uns, dass an der Config.groovy, so etwas wie dieses:
Wie Sie sehen können, setzen wir nur die Ordner, wo die Datei ist im Java-system-Eigenschaft und durch die Konvention, die wir sagen, dass der Datei-name sollte der name der Anwendung + "-config.groovy", aber wenn Sie müssen, können Sie geben Sie den vollständigen Pfad einschließlich des Dateinamens in der system-Eigenschaft.
Dann, wenn die Anwendung ausgeführt Sie nur die variable setzen, wie diese:
Wie Sie sehen können, im code gibt es eine if-Anweisung, die verhindert, dass Ihr von der Suche nach der config-Datei, wenn die Java-system-property-variable noch nicht definiert wurde, können Sie auf diese Weise führen Sie Ihre app ohne Verwendung einer externen config-Datei und nur mit Hilfe der Konfiguration definierten Einstellungen in der Config.groovig.
Wenn Sie Ihre app in Eclipse oder IntelliJ übergeben Sie diese variable als eine JVM variable an.
Dies ist eine andere option aus, die zu den Klassenpfad ändern, oder fügen Sie die config-Datei in die classpath-so ist die app nimmt es.
Können wir so eine post-compilation-event in _Events.groovy kopieren unsere externen Konfigurations-Datei in die classpath-so:
Finden Sie weitere details hier
Dort sollte eine Datei namens
.classpath
im Projekt zu Hause.Ich bin mir nicht sicher, aber werfen Sie einen Blick auf diese Datei.
.classpath file
. Aber der eclipse-classpath entspricht nicht den classpath, dass grails verwendet, wenn es startet 'run-app"..class
. Ich habe.class
Datei in jeder grails-Projekt und ich weiß nicht eclipse verwenden. Dieser ist grails-Projekt.class
Datei, die nicht von eclipse.Ordner im classpath sind in der Datei aufgelistet ist .classpath
standardmäßig in grails 2.5.0 sind :
Dateien in grails-app-conf kopiert werden WEB-INF/classes und werden Teil des classpath