项目结构
项目结构
这部分内容主要是介绍IntelliJ Platform 中项目(project) 的基础概念和有关主题,例如 模块(Module), facets, 依赖包(Library), 和 SDK等,并讨论用于管理**项目(project)和模块(Module)**的项目结构和Java类
提示
在2020.3版本中,重新设计了项目模型(project models),可以从blog post 了解相关内容。使用了正确的API且没有访问内部类的插件不会有影响。
项目和组件
这部分讨论IDEA的项目结构(project structure),项目组件(project components)及相关条款。可以从 Project, Module, Library, Facet 等帮助文档中了解项目及其组件。
在 Project Structure 对话框中可以使用 ProjectSettingsService 打开相关配置项
项目(project)
项目(project)封装了项目的源码,依赖包,构建指令等。IntelliJ Platform SDK 所有的操作都是在项目(project) 的环境中完成的。项目(project) 可以包括单模块(Module) 或 多模块(Module) 。
模块(Module)
模块(Module)可以单独运行,测试,和debug。模块(Module)包含源码,构建脚本,单元测试,部署描述等。
同一个项目中,每个模块(Module)可以指定单独的SDK,模块之间可以互相依赖。
依赖包(Library)
模块需要其它依赖包(Library)。IntelliJ Platform 的依赖包分为3种类型:
Module Library:模块级依赖,这类依赖只对当前模块有效,记录在模块的 .iml 文件
Project Library: 项目级依赖。这类依赖对整个项目有效,记录在项目的 .ipr文件或 .idea/libraries 文件里。
Global Library :全局依赖,记录在 ~/.IntelliJIdea/config/options/applicationLibraries.xml 文件里,对不同的项目都有效
更多关于依赖包的信息,可以查看帮助文档: Library
SDK
每一个项目都需要使用 Software Development Kit (SDK)。在JAVA项目中,SDK是JDK (Java Development Kit).
SDK确定构建项目用到的API包。如果项目是多模块的,该项目中的所有模块默认使用项目(project)的SDK。也可以为每个模块(Module)指定不同的SDK
更多信息,可以查看帮助文档: Working with SDKs
Facet
Facet指定了模块(Module)使用的框架或技术。一个模块(Module)可以使用多个Facet,例如,同时选择Spring框架中的spring-mvc和spring-security。
更多信息,可以查看帮助文档: Facet
其它信息
在以下文档中,对上述各部分进行了详细描述
集成外部系统(External system integration) (从 Gradle 或其它构建系统导入的项目)