如何创建2个单独的war文件

时间:2013-10-01 22:02:21

标签: java maven jenkins

我正在研究这个庞大的java maven项目,它有几个组件。除了1个客户的1个小部分外,该项目将以完全相同的方式交付给多个客户。

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

现在这是我的问题 - 我如何创建两个war文件 - 1个带有客户提供给我的jar文件,1个没有。

我开始研究功能切换 - 但功能切换需要我将专有jar文件传递给其他客户,因为代码将无法编译,因为仍然存在依赖关系,我只有1个war文件。

3 个答案:

答案 0 :(得分:1)

查看使用maven配置文件来编译和打包与项目工件的不同依赖项。

这是与this one.

类似的问题

答案 1 :(得分:1)

我没有完全解决你的问题:如果你的应用程序代码需要“特殊日志记录”才能工作,只需将其拉出就行不通,正如你所说,你的代码需要“特殊日志记录”要运行的库。

您是否已经做了一些事情来抽象出“特殊记录”的用法,以便您可以选择其他客户?

正确安排项目的一种方法是将两个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插件来控制战争中包含的依赖关系,并在同一个项目中构建两个战争,给出不同的分类器来区分它们。但是我认为单独的项目更容易处理。

答案 2 :(得分:0)

感谢大家上面提供的回复。虽然,你提供了两个很好的解决方案,但它们不能用于我想做的事情。

我的一位同事通过使用maven叠加层帮助我解决了这个问题。

基本要点是我有一个名为foo的项目。我复制并粘贴了它旁边的确切项目,并称之为foo_with_logging。在我的新项目的pom文件中,我依赖于项目foo。

如果您有任何疑问,请与我们联系。