内容简介:在上一篇我们介绍了如何在IDEA中使用MAVEN,以及如何创建依赖等。那么在这一篇中,我们就试图搭建一个生产级的解决方案,大家可以使用这个解决方案作为骨架代码来搭建自己的开发环境。在这里,我们要完成:创建parent,在parent里完成所有的pom依赖和定义;
在上一篇我们介绍了如何在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.0</modelVersion>
<groupId>com.zuikc</groupId>
<artifactId>zuikc-sln</artifactId>
<packaging>pom</packaging>
<version>1.0.1</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.0</javax.servlet-version>
<javax.servlet-jsp-version>2.2.1</javax.servlet-jsp-version>
<jstl-version>1.2</jstl-version>
<taglibs-version>1.1.2</taglibs-version>
<project.build.sourceEncoding>UTF-8</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-8</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.1</version>
</parent>
<modelVersion>4.0.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.1</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>7070</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吧,
感谢关注“码农星球”。本文版权属于“码农星球”。我们提供咨询和培训服务,关于本文有任何困惑,请关注并联系我们。
以上所述就是小编给大家介绍的《Java全栈程序员之07:IDEA中使用MAVEN构架生产级的Web项目》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 2018安全的PHP系统构架指南
- 一种 NodeJS 全栈项目的构架方式
- 人工智能的底层构架,认识HBase数据模型
- React Native 0.57.0-rc.2 发布,原生应用构架
- React Native 0.57.0-rc.2 发布,原生应用构架
- 微服务运维难维护?数据基础架构公司Segment宣布放弃微服务构架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Sovereign Individual
James Dale Davidson、William Rees-Mogg / Free Press / 1999-08-26 / USD 16.00
Two renowned investment advisors and authors of the bestseller The Great Reckoning bring to light both currents of disaster and the potential for prosperity and renewal in the face of radical changes ......一起来看看 《The Sovereign Individual》 这本书的介绍吧!