最近写个自己的小项目,牵扯到maven工程聚合问题,网上看了大量资料研究了下,成功了,按照自己的理解简单粗暴的记录下。。。

一、模块结构

粗略画了个草图表示下现有模块之间的关系

ddbbcfb4df42b7f6bc387b6ba8848e1c.png

二、模块作用及配置文件

shiro

8feb80e210c63168200887d2396fc646.png

提供shiro框架所需的jar包及shiro框架可以共用的相关代码

pom略,仅仅为shiro相关jar包配置

ssm

b09d5075e0cd0ce0f65be1119c5dae9a.png

提供ssm框架所需的jar包及与ssm框架相关的可以共用的相关代码

pom略,仅仅为ssm框架相关所需jar包配置

tool

f96a1538cf2ace03d36bdcd57e0edb95.png

工具模块,提供一些工具代码。

pom不配置

shiroproject

651cf5ca4772a4cf96bd45fc33e7ef27.png

shiro权限模块,可以独自运行,提供基础的对权限表的增删改查功能及页面展示功能。被其他工程整合后,这些基础功能可以直接使用。

pom

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

4.0.0

org.bc.shiro

shiroproject

war

0.0.1-SNAPSHOT

shiroproject Maven Webapp

http://maven.apache.org

org.bc.frame

shiro

0.0.1-SNAPSHOT

shiroproject

org.apache.maven.plugins

maven-war-plugin

false

org.apache.maven.plugins

maven-surefire-plugin

2.5

true

src/main/java

**/*.properties

**/*.xml

false

src/main/resources

bdpb-sys-web

b39e8b676b81b571d7027ce851e454fb.png

项目系统模块,依赖于shiro权限模块,提供项目系统方面的功能及整个项目的权限管理。

pom大致同shiroproject模块略

bdpb-business-web

aeb64432c1cd8f7eb93a7eb1d703f520.png

项目业务模块,项目的核心功能模块。

pom大致同shiroproject模块略

bdpb-web

8304159dc063b992512493a86b6b1bfa.png

仅用于整个web模块,被整合的模块的代码及配置文件会整合进本模块,如果有同名的文件会被本模块覆盖,因此本模块可以放置整个项目的全局配置文件。

pom

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

org.bc.bdpb

bdpb-aggregator

0.0.1-SNAPSHOT

../bdpb-aggregator

4.0.0

bdpb-web

war

org.bc.shiro

shiroproject

0.0.1-SNAPSHOT

war

org.bc.bdpb

bdpb-sys-web

0.0.1-SNAPSHOT

war

org.bc.bdpb

bdpb-business-web

0.0.1-SNAPSHOT

war

bdpb-web

org.apache.maven.plugins

maven-war-plugin

WEB-INF/web.xml

org.bc.shiro

shiroproject

org.bc.bdpb

bdpb-sys-web

org.bc.bdpb

bdpb-business-web

bdpb-aggregator

a2f97c70f504448c0417fb14677bfa6b.png

聚合工程,本项目所有工程的父工程,可以仅仅有一个pom配置文件。

pom

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

4.0.0

UTF-8

org.bc.bdpb

bdpb-aggregator

0.0.1-SNAPSHOT

pom

../ssm

../shiro

../tool

../shiroproject Maven Webapp

../bdpb-web Maven Webapp

../bdpb-sys-web Maven Webapp

../bdpb-business-web Maven Webapp

bdpb-aggregator

http://maven.apache.org

org.apache.maven.plugins

maven-resources-plugin

2.6

UTF-8

org.apache.maven.plugins

maven-compiler-plugin

2.5.1

UTF-8

项目配置过程中问题

项目报错

afb20173091e87b7dc6dd7141d451c33.png

右键更新下项目,如果依赖的项目代码发生变动也要更新下。

执行整合

打开cmd进入聚合项目目录执行mvn install命令进行项目聚合,然后在maven仓库找到聚合后的项目,打开war包会发现依赖的java项目被打成jar包放在lib下,而多个web项目代码及资源被整合到一起。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐