2013-09-25 66 views
0

我在兄弟模塊中有一些測試問題。Maven資源/在兄弟模塊中

我有資源在模塊1以下文件夾/:SQL /語句該文件夾中 的所有文件被加載用下面的代碼:

URL url = this.getClass().getClassLoader().getResource("sql/statements"); 
assert url != null; 
Collection<File> files = FileUtils.listFiles(new File(url.getPath()), 
    FileFilterUtils.suffixFileFilter("sql.xml"), TrueFileFilter.INSTANCE); 

這工作得很好:

  • intellij裏面爲兄弟模塊
  • intellij裏面帶有xml文件的模塊
  • 用maven乾淨的安裝在模塊裏與XML文件

但由於某些原因,當我在同級測試中引用這個類模塊是無法找到的XML文件,當我運行清理命令行安裝。

我該如何解決這個問題?

編輯:當它失敗,打印如下網址路徑,這似乎OK(?): 網址:jar:file:/home/<user>/.m2/repository/<path>/1.0.0/<jar-name>1.0.0.jar!/sql/statements

回答

0

檢查您的POM文件:你可能只是複製的資源,你的「SQL的構建/ xml「模塊。如果你想在兄弟模塊中使用它,最好將它移動到父POM。

+0

其他模塊有兄弟設置參數testResources到同一目錄作爲依賴,我想這應該是好的?母公司POM沒有任何資源 - 我認爲它應該保持這種狀態。 – Vegard

0

至於this Maven的文檔,測試資源應存放在

src/test/resources 

但是你可以爲主要資源

<build> 
     <testResources> 
      <testResource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </testResource> 
     <testResources> 
     <resources> <!-- this is default setting --> 
      <resource> 
       <directory>src/main/resources</directory> 
       <filtering>true</filtering> 
      </resource> 
     </resources> 
+0

這些資源不僅用於測試,我想在生產代碼中使用它們 – Vegard

+0

@Vegard我明白。使用此設置,您將在生產和測試中擁有相同的資源 – Ilya