如何在Java <= 8中强制执行模块边界

时间:2018-09-19 07:40:41

标签: junit java-8 java-9 jigsaw module-info

我想使用Java模块(由Jigsaw项目引入)对单片应用程序进行模块化。

不幸的是,我目前一直无法使用Java8。无论如何,我还是想构建那些模块(jar文件),但是没有使用module-info.java文件来声明依赖项和导出的API的功能。 / p>

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

当然,您没有编译器或IDE的任何支持,但是可以通过JUnit强制执行访问。不幸的是,我找不到提供API的项目。

有人可以帮忙吗?

顺便说一句。如果在单元测试之外还有另一种好的方法,也请让我知道!

1 个答案:

答案 0 :(得分:0)

https://www.archunit.org/是我一直在寻找的东西。