我有一个与soap webservices一起使用的webserver项目,并将数据保存到db。
现在我想编写一些导入程序类来定期构建某种数据库缓存。这些导入器类应该重用web服务器项目的批次(特别是域leyer,域POJO,数据库服务,配置等)。进口商以后应该在与网络服务器不同的机器上运行,因此是独立的。
如何构建maven / eclipse项目,以便我可以将这两个项目分开,但重用大量公共代码?
我会将这两个课程都放在同一个项目中吗?或者我将公共代码移动到一个jar,并使用此jar作为依赖创建1个webserver和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),项目之间的关系应该已经是创建