我在寻找解决方案以构建不同版本的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