Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Maven配置为在web应用程序组装期间具有两个输出工件或从JAR中提取特定文件夹_Maven - Fatal编程技术网

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

将Maven配置为在web应用程序组装期间具有两个输出工件或从JAR中提取特定文件夹,maven,Maven,我正在将现有的构建系统从Ant迁移到Maven,到目前为止,我已经解决(或重新设计)了许多问题,除了这个问题。 我们每个特定于系统的项目的目标都是一个简单的JAR,但它还包含一些项目配置和定制信息,这些信息被复制到WAR的(比如)文件夹中。通过这种方式,我们的web应用程序实现了模块化和可扩展性 考虑例子: project: MyProject /product product.info some.data WAR: ./product /MyProje

我正在将现有的构建系统从Ant迁移到Maven,到目前为止,我已经解决(或重新设计)了许多问题,除了这个问题。 我们每个特定于系统的项目的目标都是一个简单的JAR,但它还包含一些项目配置和定制信息,这些信息被复制到WAR的(比如)文件夹中。通过这种方式,我们的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)。我将感谢所有提出的解决方案(包括项目文件夹的重组选项)。

第一个显而易见的答案是将每个这样的“产品”项目(如果更容易理解的话,将其视为一个“模块”)分为两个子项目——一个用于JAR,另一个用于配置数据。然后,使用程序集,所有声明的“产品拉链”将转到WAR的
/product
文件夹


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

这是否意味着您的产品文件夹中包含不同的配置用于一场战争?@khmarbaise我不确定是否正确理解了您的评论,但它的工作原理是这样的:不同的“子产品”的配置不同,但一个“产品”(如果愿意,可以称之为模块)只会在./product文件夹中产生一个JAR和一个子文件夹(同样,它可以命名为“./modules”)