打包通用代码,以便在java中更好地重用代码

时间:2014-04-20 21:11:29

标签: java jooq

我有两个相当独立的java项目,除了它们共享一个通用的mysql数据库。 我想重构这些项目并提取有关公共数据层的所有内容。我正在使用jOOQ,所以这个层的大部分都在我的构建中自动生成。除此之外,我还有一些在两个项目中都使用的公共实体类。

将这个分开的最佳做法是什么,以便可以在一个地方进行任何更改并仍然传播到这两个项目?用公共代码创建第三个java简单项目?你会做什么

1 个答案:

答案 0 :(得分:3)

我在分布式系统上工作,多个守护进程需要通过jOOQ访问同一个Postgres数据库。由于每个守护进程都是它自己的Java项目,因此我和你基本上在同一条船上。

我一直在使用的解决方案是创建第三个Java项目作为Java库。如果您正在使用Netbeans,则可以将其作为子项目依赖项包含在内,并且可以将对库项目的任何更改重新编译到各个应用程序项目中。

有一点需要注意的是,您需要在所有3个项目中指定jOOQ库jar。在Netbeans中,很容易指定项目的库目录,并且有多个项目共享这些依赖项。 Netbeans将在部署时复制依赖项。

编辑:

步骤基本上是:

  1. 为系统创建主布局,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
    
  2. 创建第三方"库" {jar,src,docs}/master-project/library.的捆绑
  3. 创建"应用程序" /master-project/software下的项目,确保告诉Netbeans仅使用/master-project/library下的第三方库。
  4. 创建"图书馆" /master-project/common下的项目,确保告诉NB仅使用/master-project/library下的第三方库。
  5. 创建一个"库"用于共享jOOQ代码,如步骤4中所示。

每个项目负责自己的编译脚本(包括生成jOOQ代码,如果需要),并正确指定/master-project/library/master-project/common之外的依赖项。