在上一篇我们介绍了如何在IDEA中使用MAVEN,以及如何创建依赖等。那么在这一篇中,我们就试图搭建一个生产级的解决方案,大家可以使用这个解决方案作为骨架代码来搭建自己的开发环境。

在这里,我们要完成:

创建parent,在parent里完成所有的pom依赖和定义;

创建common项目,common作为工具包而存在,被其它module所依赖;

创建dao,依赖common;

创建service,依赖dao和common;

创建web,依赖service和dao;

下面开始具体的创建过程。

1.创建Parent

所谓parent就是父工程,在这个父工程里我们需要管理所有的子Module,所以我们将其当成是一个解决方案(solution)而存在。

首先,新建project,选择maven。注意下图,不要选择archetype,

下一步,分别定义groupid,artifactid和version,

默认next,

Finish之后,来到下面的界面,

2.配置Parent依赖

打开pom文件,让我们输入,

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.</modelVersion> <groupId>com.zuikc</groupId>
<artifactId>zuikc-sln</artifactId>
<packaging>pom</packaging>
<version>1.0.</version>
<modules>
<module>zuikc-common</module>
<module>zuikc-dao</module>
<module>zuikc-service</module>
<module>zuikc-web</module>
</modules> <!-- 设置版本号 -->
<properties>
<java-version>1.10</java-version>
<javax.servlet-version>3.1.</javax.servlet-version>
<javax.servlet-jsp-version>2.2.</javax.servlet-jsp-version>
<jstl-version>1.2</jstl-version>
<taglibs-version>1.1.</taglibs-version>
<project.build.sourceEncoding>UTF-</project.build.sourceEncoding>
</properties>
<!-- 统一依赖管理 -->
<dependencyManagement>
<dependencies> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${javax.servlet-version}</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>${javax.servlet-jsp-version}</version>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>${jstl-version}</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>${taglibs-version}</version>
</dependency>
</dependencies>
</dependencyManagement> <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
<encoding>UTF-</encoding>
</configuration>
</plugin>
</plugins>
<pluginManagement>
<plugins>
<!-- 配置Tomcat插件 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
</plugins>
</pluginManagement>
</build> </project>

注意,这部分内容,

实际是不需要我们输入的,随着我们子module的创建,idea会自动为我们生成。

下面这部分内容是定义了一些属性。由于idea默认的servlet模块是2.3的,所以需要让我们手动定义成3.1,否则我们就使用不了servlet的注解。其次,我索性将jstl也一并引入进来。

以下这部分内容才是真正的依赖管理,

下面是定义了两个插件。第一个是java的编译版本。第二个是使用tomcat插件来运行我们即将要创建的web项目。

经过上面的设置,parent部分就大功告成了。

3.创建common

Common是工具包。

在parent上右键来创建子模块。如下:

注意,由于是普通jar包,所以也不要选archetype,

Next,

Next,

Finish。

创建完成后长下面这样。

4.创建dao与service

用跟创建common一样的方法来创建dao和service,最终结果如下:

5.创建web

接着让我们来创建web。

这次我们要选择“create from archetype”,如下图选择webapp,

Next,

Next,

Next,

Finish,

这个时候,我们发现idea的控制台中有下图的generating,这个时候要等几分钟,才能将我们的web项目初始化,

当generating完毕,web项目就会被初始化为一些默认的文件夹和文件在里面。当前的项目我们暂时不需要spring和日志,所以就可以将applicaitonContext.xml和log4j.xm删除。

6.Web的配置

接着修改web.xml,使其支持servlet3,如下,

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1" metadata-complete="false"> </web-app>

Maven默认的webapp模版没有创建java文件夹,让我们手动创建。手动创建完毕,发现不能在java文件夹上创建servlet,这个时候就要完成两件事情了。

第一件事情,要将java文件夹标注为:sources root,

第二件事情要配置web的pom文件,加入对servlet3模版的支持,如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<parent>
<artifactId>zuikc-sln</artifactId>
<groupId>com.zuikc</groupId>
<version>1.0.</version>
</parent> <modelVersion>4.0.</modelVersion>
<packaging>war</packaging> <name>zuikc-web</name>
<artifactId>zuikc-web</artifactId> <dependencies> <dependency>
<groupId>com.zuikc</groupId>
<artifactId>zuikc-dao</artifactId>
<version>1.0.</version>
<scope>compile</scope>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<scope>provided</scope>
</dependency> <dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
</dependency>
</dependencies> <build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<configuration>
<port></port>
<path>/</path>
</configuration>
</plugin>
</plugins>
</build> </project>

在这个pom文件中,一是完成了servlet3的支持,而是让项目引入引入tomcat的插件,并指定项目在7070端口上启动。

这个时候,还是发现不能在java上创建servlet,没事,只要使用maven的reimport刷新一下就行了,如下:

这个时候,就可以在java上创建servlet了,

Next,

最后ok,可以看到,

让我们修改servlet,

package com.zuikc.servlets;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; @WebServlet(name = "Servlet1", urlPatterns = "/servlet1")
public class Servlet1 extends javax.servlet.http.HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//通知浏览器浏览器用utf8来解析返回的数据
response.setHeader("Content-type", "text/html;charset=UTF-8");
//使用UTF-8转码
response.setCharacterEncoding("UTF-8");
response.getWriter().append("码农星球最课程,IT培训新选择!");
}
}

7.配置启动

我们要配置用maven启动项目。如下:

确定。

然后点击run,就可以运行项目了,

注意,我们初次创建,会从maven仓储中下载不少文件,如下图所示

其次,run之前需要我们将项目本身install到maven的本地仓储中。还记得上一篇中我们是怎么install的吗?来来,只要在sln上install就可以了,

看到这些,就表示成功了,

现在,让我们run这个web项目,看到这个熟悉的界面,就说明tomcat启动成功,

来,让我们localhost:7070/servlet1吧,

感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。

最新文章

  1. MySQL大小写补坑记
  2. Xcode免证书调试
  3. session在.ashx文件操作问题
  4. linux c网络编程之函数
  5. JQ分页功能
  6. 【TYVJ】1338 QQ农场(最大流+最大权闭合图)
  7. MVC的传递数据的方法
  8. Mockito文档-单元测试技术
  9. 手动ecache处理
  10. 使用text-overflow: ellipsis 处理文本溢的一个小问题
  11. Graph图总结
  12. Java__线程---基础知识全面实战---坦克大战系列为例
  13. 从零学习Fluter(七):Flutter打包apk详解
  14. 天气预测(CNN)
  15. Listview 包含 edittext 的解决方案
  16. 使用eclipse粗略统计代码代数【原】
  17. MongoDB 之 你得知道MongoDB是个什么鬼 MongoDB - 1
  18. 使用SpringBoot入门案例
  19. SQL server类型转换
  20. Hadoop概念学习系列之谈hadoop/spark里分别是如何实现容错性?(四十二)

热门文章

  1. linux后台执行./run.py提示python syntax error near unexpected token `(&#39;
  2. Ubuntu18.04上安装Docker-Compose
  3. 做生活的有心人——xxx系统第一阶段总结
  4. Substrings kmp
  5. python线程池ThreadPoolExecutor与进程池ProcessPoolExecutor
  6. 20165235 祁瑛 2018-4 《Java程序设计》第八周学习总结
  7. css上传图片中等待不可点击效果
  8. --mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题
  9. Django的请求生命周期
  10. java8 Stream的实现原理 (从零开始实现一个stream流)