利用intellijidea创建maven多模块项目
一、项目结构
multi-module-PRoject是主工程,里面包含两个模块(Module):
- web-app是应用层,用于界面展示,依赖于web-service参的服务。
- web-service层是服务层,用于给app层提供服务。
二、构建项目
2.1 Parent Project
新建一个空白标准maven project(不要选择Create from archetype选项)
填写项目坐标
得到一个标准的maven项目,因为该项目是作为一个Parent project存在的,可以直接删除src文件夹。
2.2 增加web-app模块(Module)
选择从archetype创建(选择webapp选项)
groupId和version继承自Parent project,这里只需要填写artifactId即可。
2.3增加web-service模块
用同样的方法创建web-service模块(不过该模块是一个空白maven标准项目,不要从archetype创建)
2.4 得最终项目结构
2.5 关键几点
- Parent project和各个Module拥有独立pom文件,他们之间的关系后续会专门写文章介绍。
- Parent project用于组织不同的Module,不实现逻辑
- Module集成Parent project的groupId和version,Module只需要指定自己的artifactId即可。
三、添加项目依赖
上面的操作是添加web-app对web-service模块的依赖,完成上述操作后web-Service中public的类已经在web-app模块中可见了。但是这个时候在app模块使用了service模块中的类,通过maven进行编译(compile)的时候还是会报错XX找不到(XX为service模块的类),要解决这个问题需要在app的pom中增加对service的依赖:
<dependency>
<groupId>com.cnblogs.kmpp</groupId>
<artifactId>web-service</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
以上,项目依赖的添加已经完成
四、开始编程
4.1 web-service模块编程
在web-service模块中增加一个Service类(SimpleService.java)
4.2 web-app模块编程
在web-app模块增加一个Servlet,并且调用web-service模块的SimpleService类的getServiceDescription方法。
4.2.1 指定源码放置目录
针对webapp没有java目录的情况,可先创建java目录,然后去设置它为源码目录,这样就可以在下面创建包了。
4.3 配置Servlet

<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" > <web-app>
<display-name>Archetype Created Web Application</display-name> <servlet>
<servlet-name>Simple</servlet-name>
<servlet-class>com.cnblogs.kmpp.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Simple</servlet-name>
<url-pattern>/simple-servlet</url-pattern>
</servlet-mapping>
</web-app>

五、运行
在web-app的pom中增加j2ee的依赖,以及jetty插件的依赖。运行jetty。详情
在浏览器中输入:http://localhost:8080/web-app/simple-servlet
得到运行结果:
六、结束
至此,本文完整演示了使用maven构建多模块项目
利用intellijidea创建maven多模块项目的更多相关文章
- springboot创建maven多模块项目
SpringBoot创建maven多模块项目 项目结构 该项目名称为springboot-maven-multi,由springboot-maven-multi.user-dao.user-domai ...
- 在Eclipse中创建Maven多模块项目
在Eclipse中创建Maven多模块项目1,创建多模块项目选择File>New>Project,打开New Project窗口,选择Maven>Maven Project,选择下一 ...
- 在IntelliJ IDEA中创建Maven多模块项目
在IntelliJ IDEA中创建Maven多模块项目 1,创建多模块项目选择File>New>Project 出现New Project窗口左侧导航选择Maven,勾选右侧的Create ...
- IntelliJ Idea14 创建Maven多模块项目
Maven多模块项目的参考资料 Sonatype上的教程 http://books.sonatype.com/mvnex-book/reference/multimodule.html 在这个教程里, ...
- Maven(4)-利用intellij idea创建maven 多模块项目
本文通过一个例子来介绍利用maven来构建一个多模块的jave项目.开发工具:intellij idea. 一.项目结构 multi-module-project是主工程,里面包含两个模块(Modul ...
- Maven(二)使用eclipse创建maven多模块项目
maven作为一种自动化构建工具,在现在的企业应用开发中运用非常普遍. 企业项目一般都比较大,多采用maven管理的多模块项目,下面直接上创建步骤 一.创建一个maven项目
- idea创建Maven多模块项目
最近几天学习到了创建多模块项目,应为自己使用的是Idea,所以想用idea创建多模块,查阅了相关资料后,自己做一个记录. 一.首先创建一个maven项目 Parent Project,创建xxx-ro ...
- IntelliJ IDEA创建maven多模块项目
创建完成后的目录结构如下: 一.项目主要分成3个模块,yves-parent为父模块,yves-dao和yves-web(webapp类型的模块)为子模块. 二 .Parent Project,创建y ...
- 使用idea创建maven多模块项目
前言 参看:http://blog.csdn.net/zht666/article/details/19040733 使用Maven管理项目时,往往需要创建多个模块,模块之间存在相互引用的关系.对于M ...
随机推荐
- MyBatis源码解析【5】工厂的构建
前言 这个分类比较连续,如果这里看不懂,或者第一次看,请回顾之前的博客 http://www.cnblogs.com/linkstar/category/1027239.html 终于算是把装备弄齐全 ...
- dashDB - Creating a table with CLOB column type
In order to create a table with clob column type, the table has to be created with "ORGANIZE BY ...
- Python的元类
1.用元类验证子类 每当我们定义新类的时候,元类就会运行雅正代码,以确保这个新类符合规定的规范. Python系统把子类的class语句处理完毕,就会调用元类的 __new__ 方法.元类可以通过 _ ...
- 为何你跟着滴滴D8级前端大神撸代码,技术却依旧原地踏步?
引子 听说最近有很多小伙伴,热衷于在慕课网上学习各种前端实战教程,并以完成项目为奋斗目标.比如本文接下来要提到的<Vue2.0高级实战之开发移动端音乐App>,这门课程的传授者是来自滴滴D ...
- SSO(单点登录)与旅游年卡
SSO(单点登录)与旅游年卡 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应 ...
- Git 使用问题 - win7 git bash下git pull失败
win7 旗舰版,从github上pull代码时,git bash命令出现错误 Administrator@rust-PC /g/rust_proj/cardslib (master) $ git - ...
- java模拟一个抽奖程序
今天用一个程序模拟一个从1-32之间,随机抽取7组号码的抽奖程序 * 需要使用Java的图形界面知识 * 窗口 JFrame * 面板 JPanel * 显示文本信息的标签 JLabel * 文 ...
- kotlin-30分钟快速入门
1.定义变量 在kotlin中,通过var 或者 val 来定义,区别就是 val定义的变量只能读不能修改,var则可以修改. val a:Int = 1 //等价于java: final int i ...
- tensorflow elu函数应用
1.elu函数 图像: 2.tensorflow elu应用 import tensorflow as tf input=tf.constant([0,-1,2,-3],dtype=tf.float3 ...
- Android - 基于 Speex 的高度封装语音库,0 耦合使用
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...