IntelliJ IDEA中“模块依赖关系”和“库”之间有什么区别?

时间:2012-09-04 18:59:15

标签: java jar module intellij-idea dependencies

"模块依赖关系"有什么区别?和"图书馆"在IntelliJ IDEA中,如果要在项目中添加.jar库?此外,什么是"出口"将.jar库添加到"模块依赖关系"复选框时在IntelliJ IDEA?

在每种方式中,在创建新生成的.jar文件时,包含的.jar库中的类和代码如何集成到最终项目(代码)中?

4 个答案:

答案 0 :(得分:12)

模块依赖项是模块文件引用的类,存档,库和资源。而库是存储在存档或目录中的一组类文件。

导出检查表示如果选中,则此库将隐式添加到引用此库的其他模块中。

要创建 .jar 文件,您需要创建一个工件。工件是建筑物输出的占位符。有预定义的模板,用于创建 .jar .war .ear 存档。您可以选择jar来构建jar工件。默认情况下,它定义为空,您需要定义工件的内容。您可以将已编译的输出拖放到它,但不要使用库存档。因为在这种情况下,库将打包在 .jar 文件中,并且您需要创建一个单独的类加载器以在应用程序启动之前加载它们。而是将工件类型更改为其他,并将 .jar 和依赖库拖到输出根中。这样,库存档将与创建的 .jar 一起复制。您还需要创建一个MANIFEST.MF,并为依赖库指定 Class-Path 。所有文件都将存储在您为构建工件指定的目录中。您可以使用 Build Artifact 菜单构建它。

答案 1 :(得分:10)

如果你的项目包含多个模块,“模块依赖”定义了这些模块之间的依赖关系,但库是模块使用的编译类(通常是jar文件,包含它们的源和javadoc)。

每个模块都可以拥有自己的库和工件(例如结果jar文件),并且可以依赖于没有循环依赖的其他模块。

答案 2 :(得分:4)

模块相关性标签可以包含导出表示该模块中的库也可用于依赖于此的另一个模块模块。

可以使用Artifacts创建包含所有依赖项的最终jar。

答案 3 :(得分:0)

"In IntelliJ IDEA, libraries can be defined at three levels: global (available for many projects), project (available for all modules within a project), and module (available for one module)."

  • 通过项目结构\平台设置\全局库设置全局库
  • 通过项目结构\项目设置\库设置项目库
  • 通过项目结构\项目设置\模块\依赖项设置模块库