Java 如何创建两个单独的war文件

Java 如何创建两个单独的war文件,java,maven,jenkins,Java,Maven,Jenkins,我正在从事这个巨大的JavaMaven项目,它有几个组件。该项目将以完全相同的方式交付给多个客户,但其中一个客户的一小部分除外 这个客户机为我提供了一个jar文件,我应该在记录信息时使用它 现在我的问题是——如何创建两个war文件——一个是客户提供给我的jar文件,一个是没有 我开始研究功能切换——但是功能切换需要我向其他客户交付专有的jar文件,因为代码不会编译,因为仍然存在依赖关系,我只有一个war文件 看看如何使用maven概要文件来编译和打包项目工件中的不同依赖项 这是一个类似于的问题,

我正在从事这个巨大的JavaMaven项目,它有几个组件。该项目将以完全相同的方式交付给多个客户,但其中一个客户的一小部分除外

这个客户机为我提供了一个jar文件,我应该在记录信息时使用它

现在我的问题是——如何创建两个war文件——一个是客户提供给我的jar文件,一个是没有


我开始研究功能切换——但是功能切换需要我向其他客户交付专有的jar文件,因为代码不会编译,因为仍然存在依赖关系,我只有一个war文件

看看如何使用maven概要文件来编译和打包项目工件中的不同依赖项


这是一个类似于

的问题,我不太明白您的问题所在:如果您的应用程序代码需要“特殊日志”才能工作,那么简单地将其取出是不可行的,正如您所说,您的代码将需要“特殊日志”库才能运行

您是否做了一些事情来抽象出“特殊日志”的用法,以便为其他客户提供替代方案

正确安排项目的一种方法是将两个WAR作为不同的项目,并在其中定义不同的依赖项,使其看起来像:

+ foo
  + foo-main              // project contains main shared code
  + foo-war-special-log   // war project that have dependencies to special logging
  + foo-war-normal-log    // war project that depends on alternative logging

还有其他方法,比如,您也可以使用汇编插件或war插件来控制war中包含的依赖项,并在同一项目中构建两个war,提供不同的分类器来区分它们。然而,我认为单独的项目更容易处理。

感谢你们在上面提供的回复。虽然,您提供了两个很好的解决方案,但它们对我试图做的事情不起作用

我的一位同事通过使用maven覆盖帮助我解决了这个问题

基本要点是我有一个名为foo的项目。我复制并粘贴了该项目,并将其命名为foo_with_logging。在新项目的pom文件中,我对projectfoo建立了依赖关系

如果你有任何问题,请告诉我