IDEA中的Project与Module的概念及使用方法
概念
在 IntelliJ IDEA 中,没有类似于 Eclipse 工作空间(Workspace)的概念,而是提出了Project和Module这两个概念。一个Project是由一个或多个Module组成。
待补入本文
Project
Project
是IntelliJ IDEA中开发工作的顶级组织单位。在其完成形式中,Project
可能代表一个完整的软件解决方案。项目是以下各项的集合:
- 您的工作结果:源代码、构建脚本、配置文件、文档、工件等。
- 用于开发、编译、运行和测试代码的SDK和库。
- 在项目context中的【工作首选项/偏好】的项目设置。
Module
Module
是Project
的一部分,是“单元、模块、功能块”之意。您可以独立编译、运行、测试和调试。Module
是一种在维护公共(Project
)配置的同时降低大型项目复杂性的方法——自认,其逻辑是将使用相同配置不同项目作为Module
置于一个Project
中?Module
是可重用的:如有必要,一个Module
可以出现在多个Project
中。
自认,是SprintBoot的部件级项目。
使用方法
目前自己对于IDEA将原本的工程分为Project
和Module
的理解是
将使用相同配置的不同项目作为Module放入同一Project,以提高相同配置的复用性
若是团队开发,极容易出现版本号冲突现象。可以利用父工程声明版本号,子工程继承。
父工程 pom.xml:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.4.RELEASE</version>
<scope>compile</scope>
</dependency>
子工程,不需要version标签:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<!-- <version>4.3.4.RELEASE</version> -->
<scope>compile</scope>
</dependency>
父工程复合子工程时父子工程各自pom文件的设置
在子工程pom.xml文件中添加父工程的引用
<!-- 子工程中声明父工程 -->
<parent>
<groupId>com.web.maven</groupId>
<artifactId>Parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!-- 以当前文件为基准的父工程的pom.xml文件的相对路径 -->
<relativePath>../Parent/pom.xml</relativePath>
</parent>
将子工程的pom.xml文件中与父工程重复的坐标删除
只留下artifactId !!!
<modelVersion>4.0.0</modelVersion>
<!--公司或组织域名倒序+项目名-->
<!-- <groupId>com.atguigu.maven</groupId> -->
<!-- 项目名不是类名-->
<artifactId>Hello</artifactId>
<!-- 版本号 -->
<!-- <version>0.0.1-SNAPSHOT</version> -->
在父工程的pom文件中添加了依赖,子工程的pom文件仍要添加该依赖,只是groupId和artifactId必须有,其余可以继承使用
其实很好理解,子工程中需要哪些jar包,自己定义在自己的pom文件中,版本等其余信息若缺少,则使用父工程的。若子工程的pom文件连groupId和artifactId都不需要,全盘继承自父工程,则会产生大量子工程中不需要的jar包,而在此章节中的前提下,每个module是一个单独的项目,若含有大量不需要的jar包,则产生冗余。