我正在研究这个庞大的java maven项目,它有几个组件。除了1个客户的1个小部分外,该项目将以完全相同的方式交付给多个客户。
这个客户端为我提供了一个jar文件,我在记录信息时应该使用它。
现在这是我的问题 - 我如何创建两个war文件 - 1个带有客户提供给我的jar文件,1个没有。
我开始研究功能切换 - 但功能切换需要我将专有jar文件传递给其他客户,因为代码将无法编译,因为仍然存在依赖关系,我只有1个war文件。
答案 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。
如果您有任何疑问,请与我们联系。