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

问题描述 投票:31回答:4

当您想要在项目中添加.jar库时,IntelliJ IDEA中的“模块依赖关系”和“库”之间有什么区别?此外,当您将.jar库添加到IntelliJ IDEA中的“模块依赖关系”时,“导出”复选框是什么?

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

java jar module intellij-idea dependencies
4个回答
12
投票

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

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

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


10
投票

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

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


4
投票

Module Dependencies选项卡可以包含Libraries,Export意味着模块中的库也可用于依赖于此模块的另一个模块。

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


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)."

  • 全局库通过Project Structure \ Platform Settings \ Global Libraries设置
  • 项目库通过Project Structure \ Project Settings \ Libraries设置
  • 模块库通过Project Structure \ Project Settings \ Modules \ Dependencies设置
© www.soinside.com 2019 - 2024. All rights reserved.