maven 建立多模块经历
- 写在前面
现在利用 Maven 创建多模块项目已经是非常流行了,近日也学习了。现将学习经历和出现的错误写出来;一是与君分享,以免有人遇见同样问题,有个参考;二是望大佬指点。水平不高,有错误望指出。
- 前言
只适合新手学习参考。
- 水平要求
对maven 有基础的认识,有过使用的经历。
- 工具
我的是Intellij idea (选择合适自己的,即可)
maven
- 目标
利用maven 建立多模块,这里以web项目为例,基于web的常用分层所以我建立了三个model:demoService(提供接口)、 demoDao(数据访问)、demoWeb(业务逻辑处理) ;其中demoWeb 依赖 demoService , demoDao依赖demoService
- 步骤
- 下载/安装/配置 maven,这一步请自行百度,有一个点新手注意,在maven的安装目录下找到配置文件settings.xml中,最好创建一个本地仓库localRepository 。以我的为例 settings.xml位于D:\maven\apache-maven-3.2.2\conf中。应为maven项目获取依赖顺序是 本地仓库 ,第三方仓库,*仓库;
上面是我的maven本地仓库。<!-- localRepository | The path to the local repository maven will use to store artifacts. | | Default: ${user.home}/.m2/repository <localRepository>/path/to/local/repo</localRepository> --> <localRepository>F:\maven\repository</localRepository>
上面阿里的镜像。<mirrors> <!-- mirror | Specifies a repository mirror site to use instead of a given repository. The repository that | this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used | for inheritance and direct lookup purposes, and must be unique across the set of mirrors. | <mirror> <id>mirrorId</id> <mirrorOf>repositoryId</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://my.repository.com/repo/path</url> </mirror> --> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
- 利用IntelliJ IDEA 创建一个projiect (为了方便,简单理解为eclipse中的workspace,但是还是有区别的)(用什么工具创建不重要,将maven 配置到ide 中, 高版本的MyEclipse好像自带maven)
图 1.1 创建project
图 1.2 创建project
图 1.3 创建prioject
图 1.4 创建project
点击 Finish后等待一会 ,控制台提示下面的信息,表示创建project成功。
图 1.5 创建project Build Success
图 1.6 创建project 成功后的目录结构,这个src文件自己用不到,可以删除
3. 创建demoService
图 2.1 创建demoService
图 2.2 查看demoService
图 2.3 创建demoService
图 2.4 创建demoService
图 2.5 创建demoService
图 2.6 创建demoService 成功
图 2.7 创建demoService 目录变化
4. 创建demoDao
创建demoDao仿照demoServic 即可,我这里不想在谈论demoDao,因为我的本意是它实现demoService提供的接口。然后将服务导出,供demoWeb实际调用的。这就牵涉到了RMI 的使用。不是本文的范围,所以新手可以不创建,这里创建只为抛砖引玉。
5. 创建demoWeb
图 3.1 创建demoService
除了选择的archetype不同,其他的步骤都相同。
6. 修改pom.xml
修改parent 的pom.xml, <packaging> pom</packaging> 标识它是用来继承的;
修改demoService和demoDao 的pom.xml, <packaging> jar</packaging> 标识它将打包为jar;
修改demoWeb的pom.xml, <packaging> war</packaging> 标识它将打包为war;
这个parent项目是用来给demoService .demoDao .demoWeb 继承的, 可以将所有的依赖jar 都放到parent的pom.xml文件中管理,parent 下的demoService 、 demoDao 、demoWeb 添加依赖的版本就方便管理为一致