我有两个相当独立的java项目,除了它们共享一个通用的mysql数据库。 我想重构这些项目并提取有关公共数据层的所有内容。我正在使用jOOQ,所以这个层的大部分都在我的构建中自动生成。除此之外,我还有一些在两个项目中都使用的公共实体类。
将这个分开的最佳做法是什么,以便可以在一个地方进行任何更改并仍然传播到这两个项目?用公共代码创建第三个java简单项目?你会做什么
答案 0 :(得分:3)
我在分布式系统上工作,多个守护进程需要通过jOOQ访问同一个Postgres数据库。由于每个守护进程都是它自己的Java项目,因此我和你基本上在同一条船上。
我一直在使用的解决方案是创建第三个Java项目作为Java库。如果您正在使用Netbeans,则可以将其作为子项目依赖项包含在内,并且可以将对库项目的任何更改重新编译到各个应用程序项目中。
有一点需要注意的是,您需要在所有3个项目中指定jOOQ库jar。在Netbeans中,很容易指定项目的库目录,并且有多个项目共享这些依赖项。 Netbeans将在部署时复制依赖项。
编辑:
步骤基本上是:
/master-project/ /master-project/library /master-project/software /master-project/software/daemon1 /master-project/software/daemon2 /master-project/common /master-project/common/utility1 /master-project/common/utility2
{jar,src,docs}
下/master-project/library.
的捆绑
/master-project/software
下的项目,确保告诉Netbeans仅使用/master-project/library
下的第三方库。
/master-project/common
下的项目,确保告诉NB仅使用/master-project/library
下的第三方库。
每个项目负责自己的编译脚本(包括生成jOOQ代码,如果需要),并正确指定/master-project/library
和/master-project/common
之外的依赖项。