您的位置:首页 > 编程语言 > Java开发

关于项目称谓、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和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 ChangesEnable Auto-Import即激活IDEA绑定的行为,以实现maven配置与IDEA配置一致。其中,Enable Auto-Import意为启用自动引入变动,即后续发生变动时不再弹出该对话框,默许IDEA自动执行绑定行为。



另一种开启自动同步的方式是通过Preference配置:



但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下面拥有相同的运行配置。

三、环境约定

为避免因版本差异造成不可预见的错误,建议参照作者的开发环境进行配置:

软件版本
Tomcat7
Intellij IDEA2016.1
JRE1.8.0_122-b16
maven3.3.9
Mysql5.6.35
其中,记得在IDEA的Project Structure配置界面中,把SDK和maven配置为上述版本





四、知识结构

下面这张图列出了阅读本篇教程提到或需用到的知识,其中环境安装配置部分请自行解决,这里主要讲解环境配置完毕后搭建项目的具体步骤。



推荐阅读:Github项目:Intellij IDEA中文文档

- 至少读完第1章(IDEA介绍)至第14章(项目相关概念讲解)

建议阅读:猴子都能懂的GIT入门

- 建议掌握Git的基本操作,并拥有自己的码云/Github账号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息