java - 禁止导入某些传递性 Maven 依赖项

标签 java eclipse maven ide dependencies

使用 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 依赖项? 这样代码就不会访问堆栈的不同层。
是的,我明白一些教育工作也应该进行。

最佳答案

在处理 Maven 时,有一个依赖范围的概念。通常,对于 Java EE 应用程序,您会看到利用最多的 3 个范围:

编译 - 如果未指定,则这是使用的默认范围。这些将在项目的所有类路径中可用。

已提供 - 当编译不需要依赖项但预计运行时依赖项位于容器中时,使用此作用域。

测试 - 这是测试所需的依赖项,但正常使用应用程序不需要

根据您的用例,我相信您正在寻求利用提供的依赖项范围,其中依赖项在运行时需要,但在编译期间不应可供应用程序使用。您可以在以下位置阅读有关依赖范围的更多信息:https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

关于java - 禁止导入某些传递性 Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37299330/

相关文章:

java - 从正则表达式匹配器检索捕获组

在 ArrayList 中插入时出现 java.util.ConcurrentModificationException

java - 将 Maven 存储库列入黑名单

Maven:将插件执行绑定(bind)到另一个插件的执行,而不是生命周期阶段

android - Android:在库中包含所有图像资源

java - Spring - 支持 QueryDsl 的高级比较器

Java解密RSA加密数据ArrayIndexOutOfBoundsException : too much data for RSA block

java - 将 java 项目转换为 apache-tomcat 托管项目

eclipse - 如何避免在eclipse中点击三下进入src/main/webapp?

android - ADT 插件安装在 Eclipse Classic 3.6 上保持在 49%