如何构建与不同项目共享的不同公共代码?

时间:2014-03-16 21:17:29

标签: java eclipse maven

我有一个与soap webservices一起使用的webserver项目,并将数据保存到db。

现在我想编写一些导入程序类来定期构建某种数据库缓存。这些导入器类应该重用web服务器项目的批次(特别是域leyer,域POJO,数据库服务,配置等)。进口商以后应该在与网络服务器不同的机器上运行,因此是独立的。

如何构建maven / eclipse项目,以便我可以将这两个项目分开,但重用大量公共代码?

我会将这两个课程都放在同一个项目中吗?或者我将公共代码移动到一个jar,并使用此jar作为依赖创建1个webserver和1个导入器项目?

1 个答案:

答案 0 :(得分:2)

你的最后一段确实给出了合理的解决方案。

如果导入程序和Web应用程序是紧密相关的,并且那些“公共类”的“可重用性”仅针对此项目,那么您可以做的是拥有这样的多模块项目:

foo // your project name
  + foo-main    // your reusable classes, you may split it into several modules if appropriate
  + foo-web       // have foo-main as dependency
  + foo-importer  // have foo-main as dependency
  + foo-parent    // my personal preference is to make parent project a module, not mandatory

如果您的导入程序与您的foo项目无关,但您仍想重复使用,则可以将其拆分

foo // your project name
  + foo-main    // your reusable classes, you may split it into several modules if appropriate
  + foo-web       // have foo-main as dependency
  + foo-parent    // my personal preference is to make parent project a module, not mandatory

bar-importer  // another project, having foo-main as dependency

甚至将该公共代码作为单独的项目

app-common   // the common code in original foo-main, 
             // maybe a multi-module project


foo // your project name
  + foo-main    // foo-specific codes, have app-common as dependency
  + foo-web       // have foo-main as dependency

bar-importer   // having app-common as dependency

对于Eclipse,应该没有什么可担心的。鉴于您正在使用最新的Eclipse + M2E插件(应该已经与最新的Eclipse捆绑在一起),如果您有正确的POM,当您将项目导入Eclipse时(通过Import - > Existing Maven Project),项目之间的关系应该已经是创建