java - 模块依赖Java解释

标签 java dependencies

我确定这可能是一个重复的问题,但我试图理解为什么......

  • A、B 和 C 是普通的旧 Java 模块 - A 和 B 是库,C 是应用程序。

  • 如果B依赖于A

  • C依赖于B

  • 为什么我必须在 C 的依赖项中包含 A 和 B?

我真的不是在寻求建议 - 我在项目中只有 5 个模块,所以这没什么大不了的。我只是好奇为什么会这样(或者我可能遗漏了一些明显的东西)。

最佳答案

有两种依赖关系需要考虑——项目依赖关系和运行时依赖关系。

运行时依赖是最简单的:你需要 A 和 B 的 JAR 才能运行 C,因为没有 A,B 将无法运行。 Java 模块类似于其他编译语言中的动态库(与静态库相对)。当您编译 B 时,编译器不会复制 A 的类以包含在 B 中:它假定 A、B 的依赖项在运行时可用。

项目依赖关系没那么简单:严格来说,您不需要将 A 包含在 C 的依赖关系列表中。大多数开发环境会为您找出传递依赖关系,因此当 A 发生变化时, B 将重新编译,然后 C 将重新编译以响应 B 的重新编译。

关于java - 模块依赖Java解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16600144/

相关文章:

java - 当值位于 ArrayList 中时,如何继续向已存在的键添加值?输入来自扫描仪以创建 TreeMap

java - 执行失败。使用 dex 转换应用程序类以进行调试

java - 使用 Weblogic 配置数据源时出现 createSQLException 错误

c++ - 分发使用 wxWidgets 的 C++ Linux 应用程序的选项

mercurial - 有没有考虑到 Mercurial 设计的构建工具?

java - 尝试连接到 Java DB netbeans 中的数据库?

java - hibernate.cfg.xml 已存在于我的项目中,但我收到此错误 hibernate.cfg.xml 未找到

hibernate 空间 : "No Dialect mapping for JDBC type: 3000"

java - 模型类和外部库最佳实践

java - 在模块 graphview 中发现重复的类