Large Enterprise Java Application - Modularization

前端 未结 5 1604
迷失自我
迷失自我 2021-02-05 18:09

I work for a country-wide company, so the software we develop is large scale.

Our core system is Web based including webservices. We are currently redesigni

5条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-05 18:53

    Based on your project requirements like independent modules development and update in runtime, Maven is the best solution. It provides great support of dependencies and plugins and looks like everything you need for your project is already available:

    • Spring/Struts/CXF/etc. maven artifacts,
    • WAR/JAR/etc. plugins,
    • Application servers deploy/testing plugins etc.
    • And you can provide only common maven artifacts for teams that develop only specific modules without sharing of all codebase.
    • Maven is supported by all Continuous Integration Servers (Hudson/TeamCity etc.)

    OSGi. If you like to use it you have to look carefully on your current design and try to adapt it to μServices. In general, you'll have modules with API, API consumers and API providers. It helps you more to split development between teams (e.g. one develops API consumer module, another - API provider module). If you need you can split API consumer/provider module to 2+ OSGi bundles (that are Maven modules).

提交回复
热议问题