1

我有一个 Maven 父项目,它有两个子模块(spring ws 原型),每个子模块都打算部署在自己的应用程序服务器中。其中一个模块公开了另一个模块中的 ws 客户端使用的 ws 端点。我的问题是我将在两个模块中都有由 jaxb 和 xsd 生成的 java 对象,除非我找到共享这组类而不复制它的方法。有没有办法将特定包从一个模块导入另一个模块?还有其他更合适的方法来处理这个问题吗?干杯!

4

1 回答 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 回答