java - 在intellij中的模块之间使用共享jar时,添加模块依赖项、库和全局库有什么区别?

标签 java intellij-idea jar

我目前将 jar 作为每个模块的依赖项包含在内,但这似乎是多余的。这三种方法和各自的用例之间有区别吗?

据我所知,唯一指定 jar 或目录的地方是添加模块依赖项时。添加库或全局库时,我可以选择 Java、Maven 或 Kotlin/JS。由于我不使用 Maven 或 Kotlin,因此不再使用 Java。即使使用第三方库(即 Apache Poi),我是否仍会使用该选项?

项目中使用的 jar 文件是否有标准位置?目前,这些 jar 位于项目外部的公共(public)位置。当我运行 tomcat 服务器并尝试使用网页中的 jar 时,我在 jar 的位置收到“无法创建临时文件”错误。我知道这是由于该位置被写保护,但我在 Eclipse 中进行了相同的设置,没有问题。

最佳答案

全局库适用于所有项目,您只需添加一次即可在其他项目和模块中重用。

如果同一项目中有多个模块需要该库,则可以使用项目库,这样您就不必在每个模块中定义它。在一个地方更新库内容比在每个模块中更新要容易。

如果仅在此特定模块中需要该库,则使用模块依赖项。

技术上没有区别,模块依赖项中存在的所有库都只是添加到类路径中。

如果您在项目中没有使用 Maven/Gradle/Ivy/SBT,您可能希望将 jar 存储在项目内,例如在 lib 目录中。

要在 Web 应用程序中使用这些 jar,它们也必须是 included into the artifact您正在服务器上部署。

关于java - 在intellij中的模块之间使用共享jar时,添加模块依赖项、库和全局库有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56081826/

相关文章:

java - IntelliJ想法: configure build for stub

PhpStorm 自动完成对 Pimple 管理的未知对象属性的支持?

java - 将外部属性文件添加到类路径

java - 下载时 JAR 不兼容

binding - 将 jar 文件添加到我的 Xamarin 项目

java - JSchException : Auth fail and fingerprint

java - Wicket:克隆对象时出现内部错误

java代码捕获mqrc 2009和2059错误

Java:缓存集合

java - 如何解决依赖于 WEB-INF/lib 中已有类的插件所需的 Tomcat Web 应用程序中的 JAR 冲突?