java 基于maven多模块合并打包部署的操作过程
项目环境
- jdk 1.8
- spring 2.7.x
- maven 3.6
项目结构
模块功能
client – 对外service
common – 共用工具切面等
main – 启动类
goods – 子模块具体实现
模块间依赖关系
client – 无依赖
common – 无依赖
main – client、common、goods
goods – client、common
具体POM配置
顶级pom
引入需要被使用的所有项目子模块,并统一制定版本号
<groupId>org.ct</groupId> <artifactId>gp-data-analysis</artifactId> <packaging>pom</packaging> <version>${gp-data.version}</version> <modules> <module>gp-data-client</module> <module>gp-data-common</module> <module>gp-futrue-goods</module> <module>gp-data-main</module> </modules> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <gp-data.version>1.0.0</gp-data.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-analysis</artifactId> <version>${gp-data.version}</version> </dependency> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-main</artifactId> <version>${gp-data.version}</version> </dependency> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-common</artifactId> <version>${gp-data.version}</version> </dependency> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-client</artifactId> <version>${gp-data.version}</version> </dependency> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-futrue</artifactId> <version>${gp-data.version}</version> </dependency> </dependencies> </dependencyManagement> <build> <!-- 引入maven打包工具 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin> </plugins> </build>
client、common、goods类似
<!-- 指定父pom版本 --> <parent> <artifactId>gp-data-analysis</artifactId> <groupId>org.ct</groupId> <version>${gp-data.version}</version> </parent>
main 设置打包入口,扫描的xml配置项等
main 中dependency中引入顺序需要注意,需要保证,未被依赖的在前,被依赖的子模块在后。因为此处的顺序决定了maven install的顺序
<parent> <artifactId>gp-data-analysis</artifactId> <groupId>org.ct</groupId> <version>${gp-data.version}</version> </parent> <dependencies> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-common</artifactId> </dependency> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-client</artifactId> </dependency> <dependency> <groupId>org.ct</groupId> <artifactId>gp-data-futrue</artifactId> </dependency> </dependencies> <build> <plugins> <!--打包插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <goals> <!-- 整合打jar包 --> <goal>repackage</goal> </goals> </execution> </executions> <configuration> <!--支持静态文件热部署--> <addResources>true</addResources> <!-- 指定该Main Class为全局的唯一入口 --> <mainClass>org.ct.gp.GpDataBootApplication</mainClass> </configuration> </plugin> </plugins> <!--打包规则,打包时将resources文件夹打包进去--> <resources> <resource> <directory>src/main/resources</directory> <filtering>false</filtering> </resource> <!--保证mapper文件夹中的.xml文件可以被编译--> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> </resources> </build>
使用maven打包root目录
生成的main jar,及包含了所有模块
到此这篇关于java 基于maven多模块合并打包部署的文章就介绍到这了,更多相关maven多模块合并打包部署内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解Spring中Bean后置处理器(BeanPostProcessor)的使用
BeanPostProcessor 接口也被称为Bean后置处理器,通过该接口可以自定义调用初始化前后执行的操作方法。本文将详细讲讲它的使用,需要的可以参考一下2022-06-06SpringBoot源码分析之bootstrap.properties文件加载的原理
本文通过访问看到bootstrap.properties中的信息获取到了,同时age也被application.properties中的属性覆盖掉了。加载顺序到底是什么?为什么会覆盖呢?我们接下来分析下吧2021-12-12Java中main函数的String[] args用法举例详解
这篇文章主要给大家介绍了关于Java中main函数的String[] args用法的相关资料,JAVA类中main函数的参数String[] args指的是运行时给main函数传递的参数,文中通过图文以及代码介绍的非常详细,需要的朋友可以参考下2023-12-12SpringCloud Gateway详细分析实现负载均衡与熔断和限流
这篇文章主要介绍了SpringCloud Gateway实现路由转发,负载均衡,熔断和限流,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-07-07Spring MVC学习笔记之Controller查找(基于Spring4.0.3)
这篇文章主要给大家介绍了关于Spring MVC学习笔记之Controller查找(基于Spring4.0.3)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。2018-03-03
最新评论