【问题标题】:How to enforce module boundaries in Java <= 8如何在 Java <= 8 中强制执行模块边界
【发布时间】:2018-09-19 07:40:41
【问题描述】:

我想通过使用 Java 模块(由 Project Jigsaw 引入)来模块化一个单体应用程序。

不幸的是,我目前坚持使用 Java 8。无论如何我都想构建这些模块(jar 文件),但没有使用 module-info.java 文件来声明依赖项和导出 API 的功能。

几周前,我偶然发现了一个 API/框架,它允许定义几乎与您可以在 module-info.java 文件中执行的相同操作。它可以在 JUnit 测试中使用,以强制模块不使用另一个模块的内部,并且该模块只能访问它们显式依赖的模块。

当然,您不需要编译器或 IDE 提供任何帮助,但您可以强制通过 JUnit 进行访问。不幸的是,我再也找不到提供 API 的项目了。

谁能帮忙?

顺便说一句。如果除了单元测试还有其他好的方法,也请告诉我!

【问题讨论】:

  • 所以你想要没有 java-9 的模块化?假设它是如何工作的?
  • Stackoverflow 不是软件查找服务。此外,模块化并不像 Java 9 那样新。只需在您喜欢的 IDE 中创建多个项目并配置它们之间的依赖关系。任务完成。如果要在运行时强制执行,可以使用 OSGi。当您使用 Eclipse 时,自然会选择 Equinox,它已经内置,因此得到很好的支持,顺便说一下,已有十多年的历史了。

标签: junit java-8 java-9 java-platform-module-system module-info


【解决方案1】:

https://www.archunit.org/ 是我一直在寻找的。​​p>

【讨论】:

    猜你喜欢
    • 2021-06-13
    • 2021-07-08
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多