关于项目称谓、IDEA操作和环境配置的约定
关于项目称谓、IDEA操作和环境配置的约定
许乌龙 发表于1年前
关于项目称谓、IDEA操作和环境配置的约定
  • 发表于 1年前
  • 阅读 431
  • 收藏 3
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

摘要: 本篇教程的目标是利用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自动执行绑定行为。

maven auto import

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

maven自动导入配置

但IDEA对maven的支持是单向的。也就是说,IDEA的配置变动后,变化并不会反馈到pom文件上面。例如在IDEA内直接对module进行重构改名删除之类的操作,是不会更新pom.xml的。因此,存在某些操作,可能会导致IDEA的配置与maven的配置不一致,出现module未被IDEA列入索引或maven打包时缺失模块等各种问题。为避免这种问题,并实现更好的跨IDE兼容性,本教程做以下约定:

  1. 模块的根目录名称与模块的ArtifactId一致
    -- 避免不必要的误解
  2. 子模块的工程文件夹嵌套在父模块的工程文件夹的根目录下,而不是平级(聚合模块可以平级)
    -- 金字塔结构便于管理
  3. 创建project和module的操作通过嵌入了IDEA菜单的Maven插件进行,而不是使用mvn命令生成
    -- 既生成规范的pom(Project Object Model),又能定制填写IDEA关注的参数。相比之下,IDEA的普通新建菜单不会生成pom文件,mvn命令不便于定制生成较为复杂的项目结构。
  4. 对版本、依赖等修改通过pom.xml进行,而不是在IDEA的Project Settings中修改
    -- IDEA会根据pom.xml自动引入第三方依赖的变动,反之pom不会自动引入IDEA添加的依赖包
  5. 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

其中,记得在IDEA的Project Structure配置界面中,把SDK和maven配置为上述版本

SDK版本

maven版本配置

四、知识结构

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

知识结构

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

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

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

- 建议掌握Git的基本操作,并拥有自己的码云/Github账号

  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 80
博文 18
码字总数 31823
×
许乌龙
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: