增加战争建设的额外依赖性

时间:2012-11-02 19:02:32

标签: java maven maven-war-plugin

我有下一个模块的maven项目:appapp-implweb。我使用maven-war-plugin构建web。现在app-impl取决于appweb取决于app-impl

web应仅取决于app。一些神奇的maven-war-plugin应该包含战争中的app-impl。我可以不用额外的maven模块吗?

2 个答案:

答案 0 :(得分:2)

app中依赖于web的恕我直言并未反映现实,因为您的网络应用程序确实依赖于我假设您在app中定义的接口的实现

考虑在app-impl2中设置替代实现。 maven怎么可能决定它应该选择哪种实现?

因此,依赖于app-impl的网络对我来说是可行的方式,并且鉴于上述设置也应该开箱即用。

答案 1 :(得分:2)

我绝对同意@Torsten,但也许你的请求中有一些有效的东西:

使用IDE开发项目时,您可以要求它停止在代码完成列表中提供实现类。

如果这是您的原因,只需添加两个依赖项,并为实现一个,指定<scope>runtime</scope>。 这可以确保:

  • 您的app模块到达javac的类路径,但app-impl没有
  • appapp-impl都将置于您的战争中的WEB-INF/lib/
  • IDE(如果使用得当)将不会为您提供app-impl
  • 的完成情况

这绝对不会为你节省击键次数,但会给你一个更好的pom,仔细模拟现实。