2017-06-21 7 views
0

Guten Morgen alle,Wie importiere ich eine Ressource aus dem gleichen Paket?

Ich habe seit Stunden versucht, eine Ressource zu importieren und zu scheitern. Ich hoffe, dass ich etwas falsch mache und Sie eine Antwort haben würden :-)

Ich versuche eine groovige gemeinsame Bibliothek in Jenkins zu verwenden. ich die Verzeichnisstruktur folgt in der Dokumentation beschrieben:

(root) 
+- src      # Groovy source files 
| +- org 
|  +- foo 
|   +- Bar.groovy # for org.foo.Bar class 
+- vars 
| +- foo.groovy   # for global 'foo' variable 
| +- foo.txt    # help for 'foo' variable 
+- resources    # resource files (external libraries only) 
| +- org 
|  +- foo 
|   +- bar.json # static helper data for org.foo.Bar 

In meinem Fall habe ich eine Ressource namens resultsProcessor.html (befindet, wo bar.json ist). Dies ist eine HTML-Vorlage. Ich habe auch eine Klasse namens ResultsProcessor.groovy (wo sich Bar.groovy befindet). In dieser Klasse möchte ich den Inhalt von resultsProcessor.html zum Rendern bekommen.

Bisher waren es viele Stunden und viel Frust! Ich habe versucht, verschiedene Dinge verwenden, einschließlich

this.getClass().getResource("resultsProcessor.html") 
this.getClass().getResource("/resultsProcessor.html") 
this.getClass().getResource("org/foo/resultsProcessor.html") 

Und einige Varianten getClassLoader usw. Jedesmal ich mit bekommen „null“.

Weißt du, was mir hier fehlt? Muss ich die Ressourcen irgendwie zu einem Suchpfad hinzufügen?

Im Allgemeinen habe ich viel mit Import/Klassenpfad zu kämpfen. Zum Beispiel, warum einige Import fehlschlagen lokal mit der groovy Konsole, während sie kein Problem sind, wenn sie auf Jenkins ausgeführt werden. Wenn Sie relevante Dokumentation oder Artikel zu beraten haben, würde ich mich freuen :-)

Vielen Dank!

+0

über Ressourcen. 1. das Verzeichnis 'resources' in Ihrem Classpath 2.' this.getClass() sein muss getResource ("/ org/foo/resultsProcessor.html") ' Welche IDE sind Sie benutzen? und 'groovy console' von IDE oder von groovy? Können Sie in Ihrer Frage auch ein Beispiel für einen fehlgeschlagenen Import angeben? – daggett

Antwort

0

Vor allem dank dagget für die Hilfe hier. Ich entwickelte direkt die groovige Konsole von groovy. Am Ende installierte ich, IntelliJ IDE. Sobald ich das Verzeichnis "resources" als Verzeichnis der Stammressourcen markiert hatte, funktionierte mein Code direkt lokal. Also denke ich, dass ich den Classpath nicht richtig einstelle, wenn ich die groovige Konsole benutze.

Es schlägt immer noch auf Jenkins fehl. getResource gibt null zurück. Aber das ist eine andere Geschichte. Zumindest bin ich jetzt frei.

Danke!

Verwandte Themen