关于项目称谓、IDEA操作和环境配置的约定
2017-02-13 00:00
441 查看
摘要: 本篇教程的目标是利用IDEA搭建一个基于Maven的多模块SSM项目骨架。第一篇文章,先对IDEA和Maven的称呼和做法进行约定,并对环境进行简单的说明。
本文隶属于新手图文教程《IDEA+Maven搭建Spring+SpringMVC+Mybatis项目骨架》
下一篇:项目架构之传统三层架构和领域模型三层架构
目录 & 项目地址:http://git.oschina.net/mzdbxqh/ssm-study/
IDEA的把项目看作是一种特殊的模块(Module)。
IDEA的项目下面可以有若干个子模块(Sub Module),子模块又可以有自己的子模块。
IDEA里面,项目/模块的名称一般就是目录名称。当然,你也可以在新建项目/模块时,把名称设置得跟目录不一样。项目/模块名称保存在IDEA的项目配置文件中,与maven的pom.xml无关。
Maven认为,IDEA里边的、包含多个模块的项目,就是一个聚合项目(Aggregation),或者是多模块项目(Multi-Module)。
Maven里面,项目名称一般就是pom.xml里边的ArtifactId,当然你也可以在pom.xml里边用name节点配置一个更友好的名称。这个名称与IDEA的项目配置文件无关。
鉴于以上差异,本系列文章约定,指代所有Module时均称之为模块,但在指代最外层的父项目时,称之为项目。同时为避免不必要的误解,除了IDEA的projectName之外,其他Module名称均与目录名称保持一致。
pom.xml创建事件 - 对module的内容进行索引操作;
pom.xml修改事件 - 下载并引入相应的依赖等操作。
发生上述事件时,右上角将弹出对话框(如下图)。选择Import Changes或Enable Auto-Import即激活IDEA绑定的行为,以实现maven配置与IDEA配置一致。其中,Enable Auto-Import意为启用自动引入变动,即后续发生变动时不再弹出该对话框,默许IDEA自动执行绑定行为。
![](https://static.oschina.net/uploads/space/2017/0309/213737_sNnS_1032568.png)
另一种开启自动同步的方式是通过Preference配置:
![](https://static.oschina.net/uploads/space/2017/0309/213819_Jf6J_1032568.png)
但IDEA对maven的支持是单向的。也就是说,IDEA的配置变动后,变化并不会反馈到pom文件上面。例如在IDEA内直接对module进行重构改名删除之类的操作,是不会更新pom.xml的。因此,存在某些操作,可能会导致IDEA的配置与maven的配置不一致,出现module未被IDEA列入索引或maven打包时缺失模块等各种问题。为避免这种问题,并实现更好的跨IDE兼容性,本教程做以下约定:
模块的根目录名称与模块的ArtifactId一致
-- 避免不必要的误解
子模块的工程文件夹嵌套在父模块的工程文件夹的根目录下,而不是平级(聚合模块可以平级)
-- 金字塔结构便于管理
创建project和module的操作通过嵌入了IDEA菜单的Maven插件进行,而不是使用mvn命令生成
-- 既生成规范的pom(Project Object Model),又能定制填写IDEA关注的参数。相比之下,IDEA的普通新建菜单不会生成pom文件,mvn命令不便于定制生成较为复杂的项目结构。
对版本、依赖等修改通过pom.xml进行,而不是在IDEA的Project Settings中修改
-- IDEA会根据pom.xml自动引入第三方依赖的变动,反之pom不会自动引入IDEA添加的依赖包
debug/run/package等行为通过maven命令行或者IDEA的maven插件进行
通过IDEA的debug/run Configurations配置基于tomcat的运行环境,需要关注过多不能做到跨IDE的配置细节。相比之下,只需要在pom.xml配置好tomcat运行的相关参数,即可做到在不同OS不同IDE下面拥有相同的运行配置。
其中,记得在IDEA的Project Structure配置界面中,把SDK和maven配置为上述版本
![](https://static.oschina.net/uploads/space/2017/0309/212916_B8o3_1032568.png)
![](https://static.oschina.net/uploads/space/2017/0309/212607_BITD_1032568.png)
![](https://static.oschina.net/uploads/space/2017/0315/212216_9sfQ_1032568.png)
推荐阅读:Github项目:Intellij IDEA中文文档
- 至少读完第1章(IDEA介绍)至第14章(项目相关概念讲解)
建议阅读:猴子都能懂的GIT入门
- 建议掌握Git的基本操作,并拥有自己的码云/Github账号
本文隶属于新手图文教程《IDEA+Maven搭建Spring+SpringMVC+Mybatis项目骨架》
下一篇:项目架构之传统三层架构和领域模型三层架构
目录 & 项目地址:http://git.oschina.net/mzdbxqh/ssm-study/
一、称谓约定
IDEA和Maven有一些概念上的差异,可能会在表述过程中造成误解。因此,在文章开始之前,先对一些称谓进行约定。:1. IDEA
IDEA的每个应用程序实例只能打开一个项目(Project)。IDEA的把项目看作是一种特殊的模块(Module)。
IDEA的项目下面可以有若干个子模块(Sub Module),子模块又可以有自己的子模块。
IDEA里面,项目/模块的名称一般就是目录名称。当然,你也可以在新建项目/模块时,把名称设置得跟目录不一样。项目/模块名称保存在IDEA的项目配置文件中,与maven的pom.xml无关。
2. Maven
Maven认为每个模块(Module)都是一个项目(Project)。Maven认为,IDEA里边的、包含多个模块的项目,就是一个聚合项目(Aggregation),或者是多模块项目(Multi-Module)。
Maven里面,项目名称一般就是pom.xml里边的ArtifactId,当然你也可以在pom.xml里边用name节点配置一个更友好的名称。这个名称与IDEA的项目配置文件无关。
鉴于以上差异,本系列文章约定,指代所有Module时均称之为模块,但在指代最外层的父项目时,称之为项目。同时为避免不必要的误解,除了IDEA的projectName之外,其他Module名称均与目录名称保持一致。
二、操作约定
IDEA通过.idea目录下的xml文件来记录项目信息,而maven则通过pom.xml来记录。IDEA会侦测pom.xml文件的变化,并对不同事件绑定了不同的行为。例如:pom.xml创建事件 - 对module的内容进行索引操作;
pom.xml修改事件 - 下载并引入相应的依赖等操作。
发生上述事件时,右上角将弹出对话框(如下图)。选择Import Changes或Enable Auto-Import即激活IDEA绑定的行为,以实现maven配置与IDEA配置一致。其中,Enable Auto-Import意为启用自动引入变动,即后续发生变动时不再弹出该对话框,默许IDEA自动执行绑定行为。
![](https://static.oschina.net/uploads/space/2017/0309/213737_sNnS_1032568.png)
另一种开启自动同步的方式是通过Preference配置:
![](https://static.oschina.net/uploads/space/2017/0309/213819_Jf6J_1032568.png)
但IDEA对maven的支持是单向的。也就是说,IDEA的配置变动后,变化并不会反馈到pom文件上面。例如在IDEA内直接对module进行重构改名删除之类的操作,是不会更新pom.xml的。因此,存在某些操作,可能会导致IDEA的配置与maven的配置不一致,出现module未被IDEA列入索引或maven打包时缺失模块等各种问题。为避免这种问题,并实现更好的跨IDE兼容性,本教程做以下约定:
模块的根目录名称与模块的ArtifactId一致
-- 避免不必要的误解
子模块的工程文件夹嵌套在父模块的工程文件夹的根目录下,而不是平级(聚合模块可以平级)
-- 金字塔结构便于管理
创建project和module的操作通过嵌入了IDEA菜单的Maven插件进行,而不是使用mvn命令生成
-- 既生成规范的pom(Project Object Model),又能定制填写IDEA关注的参数。相比之下,IDEA的普通新建菜单不会生成pom文件,mvn命令不便于定制生成较为复杂的项目结构。
对版本、依赖等修改通过pom.xml进行,而不是在IDEA的Project Settings中修改
-- IDEA会根据pom.xml自动引入第三方依赖的变动,反之pom不会自动引入IDEA添加的依赖包
debug/run/package等行为通过maven命令行或者IDEA的maven插件进行
通过IDEA的debug/run Configurations配置基于tomcat的运行环境,需要关注过多不能做到跨IDE的配置细节。相比之下,只需要在pom.xml配置好tomcat运行的相关参数,即可做到在不同OS不同IDE下面拥有相同的运行配置。
三、环境约定
为避免因版本差异造成不可预见的错误,建议参照作者的开发环境进行配置:软件 | 版本 |
Tomcat | 7 |
Intellij IDEA | 2016.1 |
JRE | 1.8.0_122-b16 |
maven | 3.3.9 |
Mysql | 5.6.35 |
![](https://static.oschina.net/uploads/space/2017/0309/212916_B8o3_1032568.png)
![](https://static.oschina.net/uploads/space/2017/0309/212607_BITD_1032568.png)
四、知识结构
下面这张图列出了阅读本篇教程提到或需用到的知识,其中环境安装配置部分请自行解决,这里主要讲解环境配置完毕后搭建项目的具体步骤。![](https://static.oschina.net/uploads/space/2017/0315/212216_9sfQ_1032568.png)
推荐阅读:Github项目:Intellij IDEA中文文档
- 至少读完第1章(IDEA介绍)至第14章(项目相关概念讲解)
建议阅读:猴子都能懂的GIT入门
- 建议掌握Git的基本操作,并拥有自己的码云/Github账号
相关文章推荐
- cocos2d-x 学习笔记(1)关于cocos2d-x(环境配置,项目结构,文件说明)
- 工作项目环境配置IntelliJ.IDEA12+maven3+tomcat6.0+mysql
- 关于Android项目使用注解开发框架在eclipse环境下的配置
- [置顶] 关于Idea基于maven创建springMvc项目中配置文件自动扫描找不到base-package问题
- 89-001-1 IDEA 的JAVAEE web项目的环境配置 tomcat配置
- 使用IDEA从零配置springboot项目环境
- Xcode 8最近朋友的项目遇到了关于上架的问题以及xcode8所需要的环境的配置以及ios 10所支持的功能
- 关于IDEA中项目pom.xml文件中jar报错,以及maven在IDEA中的配置!!!
- 关于IDEA的基本环境配置以及快速使用(git拉载程序,Jdk安装,tomcat部署,应用程序打包运行)
- 关于C++项目的环境配置和lib的总结
- IDEA环境下配置eclipse项目
- 关于用idea开发配置javaEE项目需要注意的
- IDEA创建web项目配置环境
- eclipse 和 IDEA java web 项目环境搭建演示,以及TOMCAT 的配置
- IDEA开发工具配置nw.js项目开发环境
- idea选择要配置项目环境
- [置顶] 安装Idea(集成scala)以及在windows上配置spark(hadoop依赖)本地开发环境
- Vue2+VueRouter2+Webpack+Axios 构建项目实战(二)配置环境及构建初始项目
- idea创建springboot项目图文教程(配置文件)(五)
- webapi框架搭建-创建项目(二)-以iis为部署环境的配置