java – 在两个或多个项目之间共享通用代码(如域类)的最佳方式是什么? - 代码日志

java – 在两个或多个项目之间共享通用代码(如域类)的最佳方式是什么?

我们正在开发一个由两个Eclipse项目组成的Web应用程序。一个项目是基于HTTP的RESTful Web服务;另一个项目是一个网站。两者都将部署为WAR。最初,两者都将部署在相同的应用服务器实例下,但最终它们将在不同的框上。

网站应用程序使用RESTful WS应用程序。显然,这两个项目都是常见的代码 – 特别是域类。例如,可能有一个位于< app> / users的资源,用于暴露用户对象的CRUD操作;为了更新用户,网站应用程序将向< app> / users发送一个XML编组的User对象。执行GET到< app> / users / 1将返回一个XML编组的User对象。

显然,由于各种原因,在两个项目中都有一个User类是很愚蠢的。所以我想知道最好的方法是什么?将共同代码放在两个项目之间共享的JAR中是我以前做过的,但是有更好还是更简单的方法?

编辑:删除了RESTful引用。除了语义之外,在两个Eclipse项目之间共享通用代码的正确方法是什么?

关注点分离

实际创建第三个项目和添加项目依赖是最好的方法,因为Separation of concerns不仅是类的一个原则,而且是软件模块的一个原则。它创造了一些优势:

>阅读更少的代码来学习一个项目的绳索。
>更好的依赖关系控制,因为你可以省略一些项目间依赖关系,所以使用错误模块的类是不可能的。
>复制代码很糟糕

项目结构

确保您没有创建一个大的“实用程序”项目,而是创建一个特定于领域的项目,如用户管理或通讯录。

在你的情况下,可能是

> user-api包含用户传输对象
> user-service提供CRUD操作
> webapp(或用户客户端)调用用户服务。

其他构建系统

当进行持续集成时,您需要使用比Eclipse更好的构建系统,但原则是一样的。您将创建具有最小依赖性的小型模块。

最流行的Build Systems for Java项目是MavenAntGradle.每个都有自己的方式来定义模块依赖。

Eclipse中的项目引用

要告诉Eclipse有关项目依赖关系,请右键单击项目,打开属性并切换到项目引用。在这里,您可以标记依赖关系,以便代码更改将立即生效,而无需手动复制JAR文件。

http://stackoverflow.com/questions/7341962/what-is-the-best-way-to-share-common-code-such-as-domain-classes-between-two-o

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 在两个或多个项目之间共享通用代码(如域类)的最佳方式是什么?