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