我很难找到构建不同版本 EAR 的解决方案(使用 maven-ear-plugin)。
我想要的是能够生成用于生产的 EAR 或用于测试的 EAR,其中测试 EAR 具有不同的 ejb-jar.xml 部署描述符以及 src/test 文件夹中的一些附加类。
到目前为止,我发现的唯一方法是引入一个配置文件“blubb”,在其中我覆盖 jar-plugin 配置以包含来自 src/test/resources 的 ejb-jar.xml 以及一些 java 文件,并添加一个我的工件 ID 的自定义后缀(或设置分类器)。然后在我的部署 pom 中引入相同的配置文件,我依赖于拥有后缀的工件来构建修改后的 EAR。
我在各种来源读到过,根据配置文件生成同一项目的不同 jar 是邪恶的(即不是 Maven 方式)。(例如,在 Maven best practice for generate multiple jars with different/filtered classes? 或 http://blog.sonatype.com/people/2010/01/how-to-create-two-jars-from-one-project-and -你为什么不应该/)
所以我的问题是,我该怎么做呢?如果我使用我的测试特定代码构建一个附加模块以有条件地包含在我的部署中的配置文件中,我的问题是我的 ejb-jar.xml 需要驻留在该 jar 文件的 META-INF 目录中,因为我的附加“测试”模块将包含在不同的 jar 中,因此 ejb-jar.xml 不会应用于我原始 jar 中的 ejb。
有什么建议,我如何以 Maven 方式解决这个问题(使用修改后的部署描述符和其他类生成一个特殊的测试耳朵)?
高度赞赏提示和见解:-)