【问题标题】:Maven: How to add files to the root inside an EAR with maven-ear-plugin?Maven:如何使用 maven-ear-plugin 将文件添加到 EAR 内的根目录?
【发布时间】:2011-04-26 02:08:19
【问题描述】:
我需要在使用 maven-ear-plugin 生成的 EAR 中添加 2 个 XML 文件。
不幸的是,我还没有看到将任意文件添加到 EAR 的方法。插件的documentation 显示“EAR 插件支持以下工件:ejb、war、jar、ejb-client、rar、ejb3、par、sar、wsr 和 har”。没有什么可以添加常规文件。
org.apache.maven.plugins
maven-ear-插件
2.3.1
富
富
1.4
库
${parent.groupId}
富网
/foo
org.richfaces.framework
richfaces-api
公共语言
公共语言
非常感谢。
【问题讨论】:
标签:
maven-2
maven-ear-plugin
【解决方案1】:
在maven-ear-plugin 2.4.2 中,您可以使用配置元素earSourceDirectory、earSourceExcludes 和earSourceIncludes 来声明要包含在EAR 中的额外文件。
默认情况下,您只需将这些文件放在 ${basedir}/src/main/application 文件夹中。
【解决方案2】:
我遇到了同样的问题。我在 ejbs/src/main/resources 下有 ejb.properties 文件,并使用 earSourceDirectory 和 earSourceIncludes 将文件从 ejbs 目录拉到耳朵。但是,它并没有可靠地 将它放在 lib 目录中。 EJB 在 . 中找不到它。它在 lib 目录中查找它。
为了解决这个问题,我创建了 src/main/application/lib 目录并创建了指向 ejb.properties 文件的链接。然后我删除了 earSourceDirectory 和 Includes 属性。现在我做一个mvn clean包的时候,它会自动拉取properties文件,放到ear的lib目录下。
【解决方案3】:
很抱歉@wishihadabettername 迟到了,但我最近遇到了同样的问题,而且我无法移动要包含的文件,因为它们位于其他文件夹中,然后是 earSourceDirectory。我阅读了maven-ear-plugin ear:ear documentation 并考虑了如何将我的release 文件夹移动到耳朵的根部。
默认绑定到生命周期阶段:包。
和
workDirectory - 在构建期间将资源复制到的目录。
默认值为: ${project.build.directory}/${project.build.finalName}。
那么我的子模块 pom.xml 看起来像这样:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<executions>
<execution>
<id>copy-resources</id>
<phase>prepare-package</phase> <!-- before package phase -->
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<!-- Work Directory of Ear plugin -->
<outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
<resources>
<resource>
<!-- my resource folder -->
<directory>release</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
希望从现在开始对人们有所帮助