打包通用代码以在Java中更好地重用代码

我有两个非常独立的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中正确指定其依赖项.

上一篇:java-JOOQ在orderBy方法中组合了Field和SortField?


下一篇:java-选择获取一个返回null的结果