2017-06-21 38 views
0

大家早上好,如何從同一個包中導入資源?

我一直在嘗試幾個小時來管理導入資源和失敗。 我希望我做錯了什麼,你會有一個答案:-)

我想在詹金斯使用groovy共享庫。 我跟着文檔中描述的目錄結構:

(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 

在我的情況,我有(所在的位置bar.json是)一個名爲resultsProcessor.html資源。這是一個html模板。 我也有一個名爲ResultsProcessor.groovy的類(位於Bar.groovy所在的位置)。在這個類中,我想獲取resultsProcessor.html的內容來呈現它。

到目前爲止,它已經很多小時和很多挫折! 我試着用不同的東西,包括

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

還有一些變種使用getClassLoader等 每次我得到「空」。

你知道我在這裏失蹤了嗎? 我是否需要將資源添加到搜索路徑?

一般來說,我在導入/類路徑上掙扎很多。例如,爲什麼一些導入在本地使用groovy控制檯失敗,而在Jenkins上運行時沒有問題。如果你有相關的文件或文章,建議,我將不勝感激:-)

非常感謝!

+0

大約資源: 1.目錄'resources'必須在classpath 2.'this.getClass()的getResource( 「/組織/富/ resultsProcessor.html」)' 什麼IDE是你使用?和'groovy console'從IDE或groovy?你能不能在你的問題中提供一個導入失敗的例子。 – daggett

回答

0

首先感謝dagget在這裏提供幫助。 我正在開發直接使用Groovy的groovy控制檯。 最後我安裝了IntelliJ IDE。一旦我將「resources」目錄標記爲根資源目錄,我的代碼就會在本地立即工作。所以我想我在使用groovy控制檯時沒有正確設置類路徑。

Jenkins仍然失敗。 getResource返回null。但這是另一回事。至少現在我已經暢通無阻。

謝謝!

相關問題