当前位置: 首页 > news >正文

java 基于maven多模块合并打包部署

项目环境

  1. jdk 1.8
  2. spring 2.7.x
  3. 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多模块合并打包部署

项目环境 jdk 1.8spring 2.7.xmaven 3.6 项目结构 模块功能 client – 对外service common – 共用工具切面等 main – 启动类 goods – 子模块具体实现 模块间依赖关系 client – 无依赖 common – 无依赖 main – client、common、goods goods – client、common 具体P…...

Kubernetes是个什么东东?

Kubernetes 是一个可移植、可扩展的开源平台&#xff0c;用于管理容器化的工作负载和服务&#xff0c;可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态&#xff0c;其服务、支持和工具的使用范围相当广泛。 Kubernetes 这个名字源于希腊语&#xff0c;意…...

【go语言grpc之client端源码分析三】

go语言grpc之server端源码分析三newClientStreamnewAttemptLocked上一篇在介绍了grpc.Dial之后&#xff0c;然后再介绍一下后面的 //创建RPC客户端client : pb.NewGreetsClient(conn)//设置超时时间_, cancel : context.WithTimeout(context.Background(), time.Second)defer c…...

Android 基础知识4-2.6LinearLayout(线性布局)

一、LinearLayout的概述 线性布局&#xff08;LinearLayout&#xff09;主要以水平或垂直方式来排列界面中的控件。并将控件排列到一条直线上。在线性布局中&#xff0c;如果水平排列&#xff0c;垂直方向上只能放一个控件&#xff0c;如果垂直排列&#xff0c;水平方向上也只能…...

补充前端面试题(三)

图片懒加载<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, in…...

.net开发安卓入门-自动升级(配合.net6 webapi 作为服务端)

文章目录思路客户端权限清单&#xff08;AndroidManifest.xml&#xff09;权限列表(完整内容看 权限清单&#xff08;AndroidManifest.xml&#xff09;&#xff09;打开外部应用的权限(完整内容看 权限清单&#xff08;AndroidManifest.xml&#xff09;&#xff09;添加文件如下…...

分享111个HTML艺术时尚模板,总有一款适合您

分享111个HTML艺术时尚模板&#xff0c;总有一款适合您 111个HTML艺术时尚模板下载链接&#xff1a;https://pan.baidu.com/s/1sYo2IPma4rzeku3yCG7jGw?pwdk8dx 提取码&#xff1a;k8dx Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 时尚理发沙龙服务网站模…...

spring之Spring AOP基于注解

文章目录前言一、Spring AOP基于注解的所有通知类型1、前置通知2、后置通知3、环绕通知4、最终通知5、异常通知二、Spring AOP基于注解之切面顺序三、Spring AOP基于注解之通用切点三、Spring AOP基于注解之连接点四、Spring AOP基于注解之全注解开发前言 通知类型包括&#x…...

LeetCode题目笔记——6362. 合并两个二维数组 - 求和法

文章目录题目描述题目链接题目难度——简单方法一&#xff1a;常规双指针遍历代码/Python方法二&#xff1a;字典\哈希表代码/Python总结题目描述 给你两个 二维 整数数组 nums1 和 nums2. nums1[i] [idi, vali] 表示编号为 idi 的数字对应的值等于 vali 。nums2[i] [idi, …...

【C#基础】C# 常用语句讲解

序号系列文章3【C#基础】C# 数据类型总结4【C#基础】C# 变量和常量的使用5【C#基础】C# 运算符总结文章目录前言语句概念1&#xff0c;迭代语句1.1 for 语句1.2 foreach 语句1.3 while 语句1.4 do 语句2&#xff0c;选择语句2.1&#xff0c;if 语句2.2&#xff0c;else 语句2.3…...

腾讯云——负载均衡CLB

负载均衡 CLB 提供四层&#xff08;TCP 协议/UDP 协议/TCP SSL 协议&#xff09;和七层&#xff08;HTTP 协议/HTTPS 协议&#xff09;负载均衡。您可以通过 CLB 将业务流量分发到多个后端服务器上&#xff0c;消除单点故障并保障业务可用性。CLB 自身采用集群部署&#xff0c;…...

6.关于系统服务的思考—— native vs java

文章目录native服务 以sensor service为例Native 服务java 服务&#xff0c; 以vibrate为例java 服务 以一个demo为例native服务 以sensor service为例 service启动 SystemServer.startBootstrapServices---->>>mSystemServiceManager.startService—>>>Sen…...

SQL语句创建视图:

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍数据库中有关视图的知识,参考学校作业. 金句分享:…...

使用BP神经网络和Elman Net预测航班价格(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

JavaWeb9-volatile解决内存可见性和指令重排序问题

目录 1.解决内存可见性问题 2.解决指令重排序问题 3.volatile缺点 4.特使使用场景 volatile&#xff08;易变的&#xff0c;易挥发的&#xff0c;不稳定的&#xff09;可以解决内存可见性和指令重排序的问题。 1.解决内存可见性问题 代码在写入 volatile 修饰的变量时&am…...

Docker - 镜像操作命令

镜像名称一般分为两部分组成:[repository]:[tag]在没有指定tag时&#xff0c;默认是latest&#xff0c;代表最新版本的镜像1.下载docker镜像 docker pull repository:tag2.查看本地所有镜像 docker images3.创建镜像别名 docker tag repository:tag repository111:tag4.查看镜像…...

全栈之路-前端篇 | 第三讲.基础前置知识【前端标准与研发工具】学习笔记

欢迎关注「全栈工程师修炼指南」公众号 点击 &#x1f447; 下方卡片 即可关注我哟! 设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习&#xff01; 涉及 企业运维、网络安全、应用开发、物联网、人工智能、大数据 学习知识 “ 花开堪折直须折&#xff0c;莫待无花…...

Tomcat 线上调优记录

原始Tomcat配置 启动参数Plaintext-Xms256m -Xmx512m -XX:MaxPermSize128m Tomcat 参数配置XML<Executor name"tomcatThreadPool" namePrefix"catalina-exec-" maxThreads"1500" minSpareThreads"50" maxIdleTime"600000&q…...

学习 Python 之 Pygame 开发坦克大战(四)

学习 Python 之 Pygame 开发坦克大战&#xff08;四&#xff09;坦克大战添加音效1. 初始化音效2. 加入游戏开始音效和坦克移动音效3. 添加坦克开火音效4. 添加装甲削减音效5. 添加坦克爆炸音效6. 添加子弹击中边界音效坦克大战添加音效 我的素材放到了百度网盘里&#xff0c;…...

New和Malloc的使用及其差异

1&#xff0c;new的使用关于new的定义&#xff1a;new其实就是告诉计算机开辟一段新的空间&#xff0c;但是和一般的声明不同的是&#xff0c;new开辟的空间在堆上&#xff0c;而一般声明的变量存放在栈上。通常来说&#xff0c;当在局部函数中new出一段新的空间&#xff0c;该…...

Intv_AI_MK11 Python数据分析搭档:环境配置与自动化脚本生成

Intv_AI_MK11 Python数据分析搭档&#xff1a;环境配置与自动化脚本生成 1. 为什么需要AI辅助的数据分析环境 数据分析师每天要处理大量重复性工作&#xff1a;数据清洗、报告撰写、图表生成。这些工作既耗时又容易出错。Intv_AI_MK11作为新一代AI助手&#xff0c;可以帮你自…...

MusicFree歌单导入终极指南:如何快速迁移你的音乐收藏

MusicFree歌单导入终极指南&#xff1a;如何快速迁移你的音乐收藏 【免费下载链接】MusicFree 插件化、定制化、无广告的免费音乐播放器 项目地址: https://gitcode.com/maotoumao/MusicFree 你是否厌倦了在不同音乐平台之间切换时&#xff0c;精心整理的音乐收藏总是被…...

STM32H755双核MCU的以太网配置:避开Cache缓存和MPU的那些坑(CubeIDE实战)

STM32H755双核MCU以太网配置实战&#xff1a;Cache与MPU的深度优化指南 在嵌入式系统开发中&#xff0c;以太网通信已成为工业控制、物联网网关等场景的标配功能。而STM32H7系列凭借其双核架构和丰富的外设资源&#xff0c;成为高性能嵌入式应用的理想选择。然而&#xff0c;当…...

TCC-G15散热控制实战指南:释放Dell游戏本性能潜力

TCC-G15散热控制实战指南&#xff1a;释放Dell游戏本性能潜力 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 一、问题发现&#xff1a;游戏本散热困境的技术根…...

基于台达PLC与C# GDI+的步进电机轨迹可视化系统设计

1. 系统设计背景与核心需求 在工业自动化领域&#xff0c;步进电机的精确控制与运动轨迹可视化一直是工程师们关注的重点。传统调试方式往往依赖示波器或专用监控设备&#xff0c;不仅成本高昂&#xff0c;而且难以实时观察复杂运动轨迹。我们设计的这套系统&#xff0c;通过台…...

如何快速解密网易云音乐NCM文件:5分钟掌握完整转换指南

如何快速解密网易云音乐NCM文件&#xff1a;5分钟掌握完整转换指南 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 还在为网易云音乐下载的加密NCM文件无法在其他播放器上播放而烦恼吗&#xff1f;ncmd…...

双模型协作方案:OpenClaw同时调用Qwen3-14B与CodeLlama

双模型协作方案&#xff1a;OpenClaw同时调用Qwen3-14B与CodeLlama 1. 为什么需要双模型协作 去年我在处理一个技术文档自动生成项目时&#xff0c;发现单一模型很难同时满足文本润色和代码示例生成的需求。Qwen3-14B在自然语言处理上表现优异&#xff0c;但生成的代码片段常…...

零基础入门:Qwen3-ASR-1.7B语音识别Docker部署全流程

零基础入门&#xff1a;Qwen3-ASR-1.7B语音识别Docker部署全流程 1. 为什么选择Docker部署语音识别服务 想象一下&#xff0c;你刚学会使用Qwen3-ASR-1.7B这个强大的语音识别模型&#xff0c;在本地电脑上测试效果非常棒。但当你想把它部署到服务器上时&#xff0c;突然发现各…...

学术公式迁移困境:从3小时到45秒的转换革命——LaTeX2Word-Equation技术解析

学术公式迁移困境&#xff1a;从3小时到45秒的转换革命——LaTeX2Word-Equation技术解析 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 问题溯源…...

OpenClaw模型微调:让Phi-3-mini适配你的专属工作流

OpenClaw模型微调&#xff1a;让Phi-3-mini适配你的专属工作流 1. 为什么需要微调Phi-3-mini&#xff1f; 当我第一次将Phi-3-mini接入OpenClaw时&#xff0c;发现这个"聪明"的小模型在处理我的专业领域任务时总有些力不从心。它能够理解通用指令&#xff0c;但当我…...