使用maven,我们可以排除一些传递依赖。
但是如果我们在运行时需要它们,并且仍然作为架构师我不希望它们被使用并成为API依赖项。
是否有工具来定义和检查不需要的使用依赖(即在某些Java类中导入)?
这里的搜索给了我一个maven的提示 In maven, can you disallow usage of transitive dependency in your code but still keep it in the classpath?
但这可能是费力的定义。也许应该使用IDE工具?
如何禁止导入和使用某些传递maven依赖项? 因此代码不会访问我们堆栈的不同层 是的,我知道一些教育工作也应该如此。
答案 0 :(得分:0)
在处理maven时,存在依赖范围的概念。通常,对于Java EE应用程序,您将看到3个范围的利用率最高:
编译 - 如果未指定,则使用此默认范围。这些将在所有项目的类路径中提供。
提供 - 当编译不需要依赖项时,使用此作用域,但预计在运行时将在容器中。
测试 - 这是测试所需的依赖项,但不是正常使用应用程序所必需的
基于您的用例,我相信您希望利用所提供的范围来实现在运行时需要依赖关系的依赖关系,但在编译期间不应该对应用程序可用。您可以在以下位置阅读有关依赖范围的更多信息:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html