Java中的架构约束

Kon*_*tov 13 java architecture maven

我想确保我的项目不包含包之间不必要的依赖项.例如,我想确保项目具有分层结构.即模型低于一切,业务逻辑依赖于模型,视图依赖于业务逻辑和模型.每个层都放在自己的包中.

你能推荐一些优选的开源工具,它允许我指定这些约束并将它们作为持续集成的一部分进行检查吗?

PS我知道我可以在单独的maven模块中分离项目.不幸的是,我的真实案例比3层系统更复杂.如果我使用maven模块,我会有几十个非常小的模块.

kos*_*tja 6

虽然我不确定是否可以在层依赖性违规上强制执行构建失败,但至少有一个工具可以检查和可视化这些层:Sonar.您可以将它与maven和jenkins构建以及eclipse(以及其他IDE)集成.

Sonar具有依赖矩阵视图,可视化包的相互依赖性.

编辑:似乎可以配置声纳来强制构建失败由违规触发:构建断路器插件

  • 也可以使用Sonar创建架构规则,当与构建断路器结合使用时可以触发构建失败:http://docs.codehaus.org/display/SONAR/Architecture+Rule+Engine (2认同)

Chr*_*101 0

Structure101允许您将层直观地定义为架构图中的单元格,映射到物理代码并检查一致性。这些图表在开发人员的 IDE 中可见,如果违反分层规则,则会生成编辑时警告。也可以在 CI 期间中断/报告构建。SonarJLattix是用于视觉依赖性控制的其他工具。