详解使用Maven构建多模块项目(图文)

网友投稿 461 2023-03-30


详解使用Maven构建多模块项目(图文)

Maven多模块项目,适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。尤其是一些开源框架,也是采用多模块的方式,提供插件集成,用户可以根据需要配置指定的模块。

项目结构如下:

test-hd-parent   (父级)

     ---pom.xml

     ---test-hd-api     (第三方接口层)

       ----pom.xml

      ---test-hd-foundation (基础工具层)

       ----pom.xml

     ---test-hd-resource  (资源层)

      ----pom.xml

     ---test-hd-service    (逻辑业务层)

       ----pom.xml

      ---test-hd-modules    (web层)

      ----pom.xml

          ---test-hd-www      (web模块1)

         ----pom.xml

          ---test-hd-admin      (web模块2)

         ----pom.xml

创建一个父maven工程

新建一个maven项目,选择存储位置,并选择创建一个简单的maven工程

输入Group Id、Artifact Id、Packaging,packaging选择pom包

生成父工程,pom.xml如下

删除工程中的src 目录

创建子模块

右击父工程名---》New---》Project,然后选择新建一个maven module工程

设置子工程名以及父工程,再设置快速创建模式

得到子工程(test-hd-api,第三方接口层),设置编译的jdk

同理设置,子模块:test-hd-foundation(基础工具层)、test-hd-resource(资源层) 、test-hd-service(逻辑业务层)

新建test-hd-modules (web层),选择创建一个a simple project,输入Group Id、Artifact Id、Packaging,packaging选择pom包

创建web子模块

web子模块在建在test-hd-modules (web层)里面,右击test-hd-modules 工程名---》New---》Project,然后选择新建一个maven module工程,设置子工程名以及父工程,选择新建web项目

配置maven web项目,参照:【Maven】Eclipse 使用Maven创建java Web项目

同理可以配置其他的web子模块   test-hd-admin(web模块2)

配置个模块的依赖

在parent项目pom.xml中建立依赖管理(dependencyManagement)

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

pom

test-hd-api

test-hd-service

test-hd-resource

test-hd-foundation

test-hd-modules

com.hd

test-hd-api

0.0.1-SNAPSHOT

com.hd

test-hd-service

0.0.1-SNAPSHOT

com.hd

test-hd-resource

0.0.1-SNAPSHOT

com.hd

test-hd-foundation

0.0.1-SNAPSHOT

javax.servlet

javax.servlet-api

3.0.1

provided

javax.servlet.jsp

jsp-api

2.2

provided

javax.servlet

jstl

1.2

taglibs

standard

1.1.2

junit

junit

3.8.1

test

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

pom

test-hd-api

test-hd-service

test-hd-resource

test-hd-foundation

test-hd-modules

com.hd

test-hd-api

0.0.1-SNAPSHOT

com.hd

test-hd-service

0.0.1-SNAPSHOT

com.hd

test-hd-resource

0.0.1-SNAPSHOT

com.hd

test-hd-foundation

0.0.1-SNAPSHOT

javax.servlet

javax.servlet-api

3.0.1

provided

javax.servlet.jsp

jsp-api

2.2

provided

javax.servlet

jstl

1.2

taglibs

standard

1.1.2

junit

junit

3.8.1

test

test-hd-foundation中的依赖

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-foundation

javax.servlet

jstl

taglibs

standard

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-foundation

javax.servlet

jstl

taglibs

standard

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-api中的依赖关系

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd&ltKYIMA;/groupId>

test-hd-parent

0.0.1-SNAPSHOT

test-hd-api

com.hd

test-hd-foundation

javax.servlet

jstl

taglibs

standard

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-api

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd&ltKYIMA;/groupId>

test-hd-parent

0.0.1-SNAPSHOT

test-hd-api

com.hd

test-hd-foundation

javax.servlet

jstl

taglibs

standard

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-api

test-hd-resource中的依赖关系

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-resource

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-resource

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-service中的依赖关系

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-service

com.hd

test-hd-foundation

com.hd

test-hd-api

javax.servlet

jstl

taglibs

standard

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-service

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-service

com.hd

test-hd-foundation

com.hd

test-hd-api

javax.servlet

jstl

taglibs

standard

junit

junit

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-service

test-hd-module中的依赖关系

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-modules

pom

test-hd-www

test-hd-admin

com.hd

test-hd-foundation

com.hd

test-hd-service

com.hd

test-hd-api

com.hd

test-hd-resource

javax.servlet

jstl

taglibs

standard

junit

junit

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.hd

test-hd-parent

0.0.1-SNAPSHOT

test-hd-modules

pom

test-hd-www

test-hd-admin

com.hd

test-hd-foundation

com.hd

test-hd-service

com.hd

test-hd-api

com.hd

test-hd-resource

javax.servlet

jstl

taglibs

standard

junit

junit

test-hd-www中的依赖关系

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-modules

0.0.1-SNAPSHOT

test-hd-www

war

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-www

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"

xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w3.org/2001/XMLSchema-instance">

4.0.0

com.hd

test-hd-modules

0.0.1-SNAPSHOT

test-hd-www

war

org.apache.maven.plugins

maven-compiler-plugin

2.3.2

1.7

1.7

test-hd-www

最后使用maven-update整个工程,右击父工程名--》Maven--》Update Project

打包和发布

打包,右击父工程名 test-hd-parent---->Run As--->Maven Install

打包web子工程,右击工程名test-hd-www--->Run As ---> Maven Build...---> Goals: clean package--->Run

右击工程名test-hd-www,进行刷新,找到war包,放到tomcat的webapps中,启动tomcat,即可访问工程http://localhost:8080/test-hd-www

可以去tomcat下面webapps》test-hd-www》WEB-INF》lib中,看到引用的jar包


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口测试用例范例(接口测试用例设计思路)
下一篇:java中实现Comparable接口实现自定义排序的示例
相关文章

 发表评论

暂时没有评论,来抢沙发吧~