intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

时间:2022-08-23 08:35:54

需求:第三方提供了http api接口,我们需要将其数据全部取回来,存放到本地Mysql数据库。

开发工具是intelj idea,准备基于maven创建聚合项目,util作为工具包,单独作为一个工程,打包时打成jar包;

dao层依赖util,打包时也打成jar包;

service依赖dao层,打包时也是打成jar包;

controller层依赖service层,打包时打成war包。

1.新建root工程

File--New Project--

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

2.新建子module

在下图中,对着步骤一新建的root工程右击,新建module

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

3.分别查看root工程和子工程的pom文件

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

4、新建dao 子工程,依赖common-utils

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

在pom文件中,手动添加依赖:

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

5、新建service 子工程,依赖dao子工程

操作同第四步。

同样,我们要修改service的pom文件,手动加dao子工程的依赖进来。

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

6、新建controller工程,该工程应该为web工程,依赖service层

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

完成后在pom文件中增加对service的依赖。

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

7、测试工程是否正常

设想:因为clicent是web工程,pom文件中依赖service组件;于是---将service.jar拷贝到web/lib目录下

在本地maven找到service组件后,根据service的pom文件,发现其依赖dao组件;于是将dao.jar拷贝到web/lib目录下

在本地找到dao组件后,在其pom中,发现dao组件依赖common-utils组件;于是找到common-utils组件后,将common-utils.jar拷贝到lib目录下

在common-utils中新增一个工具方法,通过dao/service/controller层层调用,所以可以直接请求controller层,调用到utils的方法。

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

在client的web中新增一个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.newthreeboard.SimpleServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Simple</servlet-name>
<url-pattern>/simple-servlet</url-pattern>
</servlet-mapping>
</web-app>

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

依次点击clean、compile、package后,会得到一个war包

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

查看打成的解压的war包目录,其lib目录下:

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

这边先直接拷贝到tomcat的web-apps下执行,看看效果:

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

启动tomcat后,

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

在浏览器中进行调用:

http://localhost:8080/newthreeboard-client/simple-servlet

此时页面请求后一片空白,没有任何反应,因为我们没有输出东西,但是在tomcat的界面可以看到:

intelj idea 创建聚合项目(典型web项目,包括子项目util、dao、service)

至此,简单的聚合项目构建ok。