2011-08-12 104 views
1

我已經配置了manifest.mf文件來添加這裏提到的custome屬性: http://twit88.com/blog/2008/02/20/maven-adding-custom-attributes-and-build-timestamp-to-manifest/maven測試階段的清單文件

我面臨的問題是,條目填充在 classes/META-INF中的manifest.mf文件中。但是test-classes/META-INF中的manifest.mf文件仍然沒有用值替換變量。

對於運行測試,我需要生成測試資源,但test.class/META-INF中的manifest.mf文件未填充用於測試目標。

任何人都可以請建議一種方法來配置manifest.mf文件的測試?

請注意,我已經嘗試爲maven-antrun-plugin添加「generate-test-resources」階段,但它沒有奏效。

謝謝。

回答

1

構建一個與將投入生產不同的測試二進制文件是一個壞主意。如果您在清單中有配置,請考慮將其移動到不屬於已編譯代碼的配置文件中。然後你可以有你的配置文件的測試和生產版本。

編輯:據我瞭解,你基本上是試圖單元測試你的pom.xml。如果我是你的話,我不會打擾你,特別是如果我正在測試一個不會被編譯的歸檔文件(你的測試資源的清單文件)的一部分的文件的內容。 但是,您試圖解決的問題是,您需要篩選測試資源,並通過明確聲明測試資源並將篩選設置爲true來實現這一目標。

<testResources> 
    <testResource> 
     <directory>src/test/resources</directory> 
     <filtering>true</filtering> 
.... 

如果你正在使用maven 2.1或更高版本,你可以跳過antrun的東西,只是用$ {} maven.build.timestamp代替。

+0

感謝Buhb,實際上我有構建版本和日期在清單中填充,並有一個測試方法來檢查這些領域。當我運行mvn測試時,它會檢查測試類/ META-INF中的清單,而不是將類/ META-INF作爲Maven運行測試資源的測試。所以當測試版本正在進行時,我需要在測試類中爲manifest.mf填充相同的屬性。任何想法如何做到這一點? – popcoder

+0

非常感謝Buhb ...它的工作...... :) – popcoder

相關問題