我在尋找解決方案以構建不同版本的EAR(使用maven-ear-plugin)時遇到了一些問題。有條件地使用maven構建EAR文件
我想要的是能夠爲生產生成EAR或爲測試生成EAR,其中測試EAR具有不同的ejb-jar.xml部署描述符以及來自src/test文件夾的一些其他類。
到目前爲止,我發現的唯一方法是引入配置文件「blubb」,其中我重寫了jar-plugin配置,以包含來自src/test/resources以及一些java文件的ejb-jar.xml ,並將自定義後綴添加到我的工件ID(或設置分類器)。然後在我的部署pom中引入相同的配置文件,在那裏我依賴擁有後綴的工件來構建修改後的EAR。
我已經閱讀過各種來源,它是EVIL(即不是Maven方式)根據配置文件生成同一項目的不同罐子。 (例如,在 Maven best practice for generating multiple jars with different/filtered classes? 或 http://blog.sonatype.com/people/2010/01/how-to-create-two-jars-from-one-project-and-why-you-shouldnt/)
所以我的問題是,我怎麼能做到這一點呢?如果我使用特定於測試的代碼構建一個額外的模塊,以在配置文件中有條件地包含在我的部署中,那麼我的問題是我的ejb-jar.xml需要駐留在該jar文件的META-INF目錄中,因爲我的附加「test」模塊將包含在另一個jar中,因此ejb-jar.xml將不會應用於我原始jar中的ejbs。
任何建議,我怎麼能解決這個問題(產生一個特殊的測試耳與修改後的部署描述符和額外的類)maven的方式?
TIPPS和見解的高度讚賞:-)
但假設我有200個模塊,每個模塊都安裝在我的本地回購站中,然後執行我的部署pom,在那裏我收集所有200個依賴關係並將它們包裝到我的耳朵中。我不確定,在這個步驟中,如何調整單個項目的內容,例如,200個項目中有50個需要在其META-INF中包含ejb-jar.xml。我必須首先以不同的方式構建它們,並帶有不同的工件ID,對嗎?因此,所有200個項目將不得不有所不同,我不知道如何實現這一點,不能真正複製每個模塊... – pete83
兩耳的原因是,某些組件需要嘲笑針對耳朵的某種類型的測試... – pete83