2010-05-13 28 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

相关问题