我有下一个模块的maven项目:app
,app-impl
,web
。我使用maven-war-plugin构建web。现在app-impl
取决于app
。 web
取决于app-impl
。
但web
应仅取决于app
。一些神奇的maven-war-plugin应该包含战争中的app-impl
。我可以不用额外的maven模块吗?
答案 0 :(得分:2)
app
中依赖于web
的恕我直言并未反映现实,因为您的网络应用程序确实依赖于我假设您在app
中定义的接口的实现
考虑在app-impl2
中设置替代实现。 maven怎么可能决定它应该选择哪种实现?
因此,依赖于app-impl的网络对我来说是可行的方式,并且鉴于上述设置也应该开箱即用。
答案 1 :(得分:2)
我绝对同意@Torsten,但也许你的请求中有一些有效的东西:
使用IDE开发项目时,您可以要求它停止在代码完成列表中提供实现类。
如果这是您的原因,只需添加两个依赖项,并为实现一个,指定<scope>runtime</scope>
。
这可以确保:
app
模块到达javac的类路径,但app-impl
没有app
和app-impl
都将置于您的战争中的WEB-INF/lib/
下app-impl
这绝对不会为你节省击键次数,但会给你一个更好的pom,仔细模拟现实。