我们有一个越来越大的Java 8 Spring Hibernate Maven项目。
问题:
我们现在的工作方式
Parent |--- Tier1 |--- Tier2 |--- WebTier |---- ModuleA |---- ModuleB |---- ModuleC |---- ... |---- Entities |---- Shared |---- Batch |---- IntegrationTests
WebTier
)作为人工制品从Eclipse或IntelliJ部署到其本地Tomcat Shared
中,模块需要"交叉模块"访问提供他们的服务让它变得更好的想法
MessageBroker
模块以允许松散耦合。也许是JMS,或者只是一个用于同步通信的哑内存组件Shared
模块Entities
。至少核心业务实体(Customer,CustomerFile,...)。但是一些实体显然属于单个模块(批处理执行信息将在Batch
模块中)这样,任何对ModuleA
进行更改的人都会在大多数情况下只在该模块中构建和运行测试,而不必担心会破坏应用程序。
问题
某些指标
非常感谢!
答案 0 :(得分:1)
CI将是真正的答案,但它看起来你的项目不应该是模块化的。你不是每次都从头开始构建整个项目。您可以构建jar,在不同的项目中测试它们,然后将其用作单个项目。每个项目应该足够小,只覆盖一个区域。你认为Java构建在他们使用io包时会说安全罐吗?分而治之 - 这就是OOP和封装的全部理念。
答案 1 :(得分:0)
这可能没有您想象的那么糟糕。涉及单元测试和静态分析的项目需要一段时间。
我工作的公司有> 1小时构建+ unitTest + CodeCoverage集成时间。这不计算将工件运送到vSphere以便在26种语言x 8支持的操作系统上对安装程序进行自动点击测试所需的时间。