我有一个 Maven 父项目,它有两个子模块(spring ws 原型),每个子模块都打算部署在自己的应用程序服务器中。其中一个模块公开了另一个模块中的 ws 客户端使用的 ws 端点。我的问题是我将在两个模块中都有由 jaxb 和 xsd 生成的 java 对象,除非我找到共享这组类而不复制它的方法。有没有办法将特定包从一个模块导入另一个模块?还有其他更合适的方法来处理这个问题吗?干杯!
问问题
893 次
1 回答
1
- 创建一个
ws-api
仅包含 api 类接口的 maven 模块。 - 创建一个
ws-impl
依赖于 的ws-api
,因为它实现了它。 client
使用模块创建ws-api
模块作为它的依赖项,因为它使用它。
然后你有以下结构,你可以重用 api 类并且你有一个清晰的 api:
parent-pom
+- ws-api
+- ws-impl
+- client
模块依赖项将是
+------------+ uses +------------+
| client | --------> | ws-api |
+------------+ +------------+
^
| implements
|
+------------+
| ws-impl |
+------------+
在此设置中,必须在ws-api
模块中生成 jaxb 对象。
有关为什么要分离 api 和实现的详细说明,请查看我的博客 http://www.link-intersystems.com/blog/2012/02/26/separation-of-api-and-implementation/
于 2013-08-09T16:17:56.090 回答