简述:通常我们开发的项目结构是由多个modules项目组合而成,并且由有个parent的maven项目整体管理。废话少说,直接进入创建过程。

创建parent项目

1、打开idea工具,按照下图操作,点击Project;

2、注意这里不要勾选模板,用模板创建过maven项目的小伙伴都知道模板创建项目非常慢,所以这里不要选模板,需要的文件夹我们后面自己来创建就可以了。所以这个页面直接点击下一步。

3、填入GroupId(公司组织)和Artifactid(模块的名字)、版本号默认即可,点击下一步,如下图所示:

4、创建project name(项目名称),此处可以修改项目名称,默认带出来的内容是healthwj,我改成了health-wj(健康无界),点击下一步继续;

5、一个project就创建好了,我们的project主要用来管理第三方依赖,所以这里的src目录要删掉,此时parent项目就创建完毕了。

创建子模块

1.选中health-wj项目,右键单击new ---> Module

2、这里继续不选择模板,和创建parent项目一样直接点击下一步:

3、填入子模块的名字,然后点击下一步:

4、直接finish就创建好了一个子模块: 默认回显内容是healthclient,我修改为health-client;

5、创建完成的子项目结构入下图所示:

6、重复上面的步骤,把项目结构创建完整,如下图所示:

此时创建的都是普通的Java项目,而不是JavaWeb项目,在一个JavaWeb项目中,我们的模块可能分为client、commons、dao、domain、rpc、service、web等几个模块,这些模块中除了web模块是web项目结构,其他模块都是普通的Java项目,本例中web项目现在还是java项目,我们将它改造为一个web项目。

1、在打开的页面中,先选择health-web,然后点击左上角的+号,选择web,如下:

2、在新打开的页面中,做如下操作:

3、修改web.xml文件的路径,如下;

OK ,至此,我们就将health-web成功的改造成了一个web项目,此时我们的项目结构如下:

项目构建

接下来我们health-service模块中提供一个方法,然后在health-web中来调用,我们看看如何实现。

1.在health-service中添加HelloWorld类,如下:

2.在health-web中引用health-service模块,修改health-web的pom.xml文件即可,如下:

3、在health-web中添加index.jsp页面,在该页面中调用health-service模块中的方法,内容如下

4、修改health-web的pom.xml文件,使之在构建时生成war文件,其他的不用修改(默认生成jar文件)。如下:

5、做好这一切之后,在IDEA的右侧边栏找到Maven Project 点开,找到parent项目,点开LifeCycle,双击package,打成war包

6、此时默认的war包名字带版本号,我们可以修改pom文件,调整war包的名字。重新打包后入下图所示,war包名字已经被修改。

 

 配置Tomcat运行web项目

1、配置Tomcat

2、部署web项目,设置Deployment选项卡;

idea找不到war exploded包的做法:点击project structure->Artifacts->Web Application:Exploded->From Modules。

新增一个health-war包

新增exploded文件,修改name(exploded文件的名字)和Output directory(war包的文件路径)

增加war包文件

修改name(war文件的名字)和Output directory(war包的文件路径)

OK,可以开心的撸代码了

idea创建Web项目(基于Maven多模块)的更多相关文章

  1. IDEA创建Web项目(maven)

    第一步:创建项目 第二步:使用maven创建,并选择jdk 第三步:修改项目名称 第四步:选择自动导入依赖(很重要!!) 第五步:添加核心依赖和打包 第六步:编译一下 第七步:配置web容器(这里是用 ...

  2. maven命令行创建web项目报错:java.lang.NoClassDefFoundError: org/apache/commons/lang/StringUtils

    早上一上班就想新建一个web项目玩玩,没想到一敲命令创建就失败了,真是出师不利.各种折腾无果,当然我也可以用eclipse直接创建的,就是不甘心被这破问题给耍了.刚刚才发现问题原因,这个结果我也是醉了 ...

  3. 【maven】maven创建web项目-pom文件提示web.xml is missing and <failOnMissingWebXml> is set to true

    使用maven创建web项目,选择war类型后,pom文件红叉 提示web.xml is missing and <failOnMissingWebXml> is set to true ...

  4. eclipse中Maven创建WEB项目

    刚刚学到Maven的时候总是容易忽视到一些创建Maven项目是的步骤, 这里记录笔者熟悉一种,直接创建Maven Project 下面开始吧--- 选择web-app,没得说,然后那些groupID ...

  5. IDEA之web项目(maven项目)创建

    1.下载IDEA付费版,有30天的试用期,免费版创建不了web项目(导入不了tomcat). 网址:IntelliJ IDEA :: Download Latest Version of Intell ...

  6. Maven学习总结(七)——eclipse中使用Maven创建Web项目

    一.创建Web项目 1.1 选择建立Maven Project 选择File -> New ->Project,如下图所示:

  7. Maven——eclipse中使用Maven创建Web项目

    原文:http://www.cnblogs.com/xdp-gacl/p/4054814.html 一.创建Web项目 1.1 选择建立Maven Project 选择File -> New - ...

  8. 转】Maven学习总结(七)——eclipse中使用Maven创建Web项目

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4054814.html 感谢! 一.创建Web项目 1.1 选择建立Maven Project 选择File -& ...

  9. 使用Maven在Eclipse中创建Web项目[转]

    一.新建 Maven Web项目 1.新建Maven Project new project-->选择 Maven Project --> 下一步 选择工作空间 -->下一步 在Fi ...

随机推荐

  1. nginx代理(正向代理和反向代理)

    正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容 ...

  2. dubbo和mq的使用场景

    MQ:消息队列.生产者消费者模式,可用于对消息实时性要求不高的场景.多进程之间间接调用关系 Dubbo:RPC实现.多进程之间直接调用关系 dubbo 1,rpc的分布式集群支持:负载均衡是对外提供一 ...

  3. SUSE Ceph RBD Mirror - Storage 6

    Ceph采用的是强一致性同步模型,所有副本都必须完成写操作才算一次写入成功,这就导致不能很好地支持跨域部署,因为如果副本在异地,网络延迟就会很大,拖垮整个集群的写性能.因此,Ceph集群很少有跨域部署 ...

  4. ant不是内部命令

    解压路径为举例路径:    解压在E盘 新建变量ANT_HOME 路径为解压目录如E:/apache-ant-1.7.1 Path中添加路径为%ANT_HOME%/bin; 错误提示: 'ant' 不 ...

  5. 18计科学期总成绩明细 && 小黄衫团队预选

    1.个人所有作业+团队作业总得分排名 2.千帆竞发图 3.各团队每次作业得分汇总 根据团队成绩排名,众志陈成队得分最高,预选为小黄衫团队. 对团队成绩有异议的团队,请在成绩预选发布后的两天内私信助教解 ...

  6. JDK环境变量配置linux

    安装前先查看是否安装过jdk如果安装过则 卸载 1. 确定JDK的版本: rpm -qa | grep jdk rpm -qa | grep gcj 可能的结果是: libgcj-4.1.2-42.e ...

  7. subprocess、struct模块的简单应用与ssh模型(黏包)

    一.subprocess模块 #可以通过传递字符串命令,帮你去实现一些操作系统的命令. import subprocess res = subprocess.Popen("dir" ...

  8. 通过 cross apply 实现函数转换成表并与原表进行关联

    create table tb_cross_apply ( id int identity, multivalue ) ) insert into tb_cross_apply VALUES ('A| ...

  9. tinylogin-1.4

    tinylogin-1.4是一个开发嵌入式的文件系统很好的一个工具

  10. mongoose 5.0 链接数据库 代码保存

    const mongoose = require('mongoose'); const dbSrc = 'mongodb://localhost/douban-trailer' mongoose.Pr ...