2010-05-13 58 views
2

這是我的挑戰,我需要爲特定容器製作一個ear文件。更具體的如何創建這個耳朵:如何在maven中製作自定義ear文件

  1. 這是一個標準的j2ee耳朵文件,其中有1個WAR。
  2. 它被部署到的容器將期望某些xml文件(可以很容易地在源項目中找到(某處))。

這裏是我的障礙

  1. 源文件夾中包含各種容器特定的XML文件。但是,這些文件不會直接映射到EAR文件中容器期望的位置。例如,這個容器會有一個文件在'EARFILE.ear/config/connections.xml'中。但是這個文件位於/ some/obscure/unrelated /目錄下(在源文件中)。大約5-7個文件就是這種情況。
  2. 我根本無法更改原始源項目佈局。

那麼,如何創建我需要的兼容EAR文件。目前我沒有使用這個容器的插件,我當然看過。

更新:

原來的佈局是針對JDeveloper:

.adf 
    /META-INF/ 
    (some xml files to map to various locations in the EAR) 
Model 
ViewController 
    public_html 
src/ 
    META-INF/ 
    (some xml files to map to various locations in the EAR) 
+0

您是否將EAR POM作爲WAR POM的父代,還是獨立? – WineSoaked 2010-05-13 17:21:50

+0

TBH,我還不確定,因爲我對maven很陌生。 – Zombies 2010-05-13 17:41:38

回答

3

這是一個標準的J2EE EAR文件,裏面有1 WAR。它被部署到的容器會期望某些xml文件(可以在源項目中輕鬆找到(某處))。

正如我告訴你this previous answer,對於戰爭和耳模塊Maven項目的典型佈局是這樣的:

 
. 
|-- ear 
| |-- src 
| | `-- main 
| |  `-- application 
| |   |-- META-INF 
| |   | `-- application.xml 
| |   `-- config 
| |    `-- connections.xml 
| `-- pom.xml 
|-- web 
| +-- src 
| `-- pom.xml 
`-- pom.xml 

${basedir}/src/main/application目錄下的文件將被納入EAR(這是earSourceDirectory參數的默認值)。

源文件夾包含各種容器特定的xml文件。但是,這些文件不會直接映射到EAR文件中容器期望的位置。 (...)

對不起,但...什麼源文件夾?可能有可能使用Maven AntRun plugin將一些文件從另一個位置複製到耳朵項目中,但這會非常麻煩,並且2.如果沒有更多細節,則無法提供更多指導。

我根本無法更改原始源項目佈局。

看起來像什麼?你真的需要提供更多的細節(如果你不能改變任何東西,那麼簡化這個項目可能並不容易,尤其是如果你對maven不熟悉的話)。

+0

好吧,我很喜歡你所提到的Maven AntRun插件。我需要能夠從給定的位置獲取文件,並將其放置在某個地方。這正是我需要的。 – Zombies 2010-05-13 19:31:43

+1

@殭屍提示:你必須在'package'階段之前執行Ant''任務,也許在'pre-package'期間執行Maven Antrun插件。 – 2010-05-13 19:34:25

+0

%s /預包裝/準備包裝/ g – 2010-05-14 20:00:23

相關問題