将Maven配置为具有两个输出工件,或者在Web应用程序组装期间从JAR中提取特定文件夹

时间:2012-04-08 07:22:00

标签: maven

我将现有的构建系统从Ant迁移到Maven,到目前为止,我已经解决(或重新设计)了许多问题,除了这个问题。 每个特定于系统的项目的目标是一个简单的JAR,但它还包含一些项目配置和自定义信息,这些信息被复制到WAR的/product文件夹中。这样就实现了我们的Web应用程序的模块化和可扩展性 考虑一下例子:

project: 
  MyProject
    /product
      product.info
      some.data
WAR:
./product
  /MyProject
    product.info
    some.data
    ..
  ..
./WEB-INF/
  /lib
    MyProject.jar
    ..

我的问题是:如何针对特定产品的项目实现此结果?我想到的第一件事是:由于这样的项目构建(JAR和ZIP),两个工件,其中ZIP由/product文件夹中的POM创建(最好的布局可能会分裂每个项目分为两个子项目,这样我就可以用一个多模块项目聚合POM和ZIP。我将非常感谢所提出的所有解决方案(包括项目文件夹和重组选项)。

1 个答案:

答案 0 :(得分:0)

第一个明显的答案是将每个这样的“产品”项目(将其视为“模块”,如果它更容易被这种方式感知)分成两个子项目 - 一个用于JAR,一个用于配置数据。然后,使用程序集,所有声明的'product-ZIPs'将转到WAR的./product文件夹。

编辑分类器也可以应用于配置插件,以使程序集更结构化,更易于实现。