2011-08-26 125 views
2

在行家項目我有幾個模塊,其僅具有在Maven爲什麼在生產版本中使用測試資源?

src/test/resources/META-INF/persistence.xml 

用於單元測試一個persitence.xml如果我建立與「包」的(單元測試)的persistence.xml項目被拷貝到jar文件。

創建的工件(jar)不應該有任何persistence.xml,因爲它已包含在包含多個模塊的war文件中。

該poms非常小,沒有配置插件,一切都應該是默認行爲。

  • 我在做什麼錯?
  • 是否有任何文件可以解釋這種影響?
+5

你碰巧在使用IDE嗎?我有Eclipse做類似的事情。 src/test/resources的Eclipse輸出文件夾被設置爲默認(target/classes),所以無論何時Eclipse編譯項目,它都會將文件從src/test/resources複製到目標/類。在'mvn package'上,Maven會很高興地將所有的東西從目標/類複製到jar中。 – ig0774

+0

@ ig0774謝謝我會在星期一檢查這個,你應該發佈這個答案;-) – stacker

+0

@ ig0774你說得對,Eclipse編譯目標目錄是問題。 – stacker

回答

1

當您使用調試標誌運行Maven時,即mvn -X ...您是否看到任何指示正在複製src/test的文件的消息?如果是這樣,您可能需要檢查執行此活動的Maven目標。

另外,您可能想要在Maven構建之後檢查項目/模塊的target/classestarget/test-classes目錄的內容。假設模塊具有罐子的包裝,maven-jar-plugin僅拾取項目輸出目錄的內容,即target/classes${project.build.outputDirectory},同時小心避免項目的測試輸出目錄,即target/test-classes${project.build.testOutputDirectory}。這也應該從mvn -X ...的輸出中顯而易見。

最後,您可能需要檢查本地Maven存儲庫中用於創建的jar文件的內容。可能發生這樣的情況,您的maven-war-plugin用於創建WAR文件, 可能會從本地存儲庫中選取包含測試持久性的JAR的較舊和不正確的版本。

+0

謝謝我會在星期一進行檢查 – stacker

相關問題