maven多模块项目打包构建的配置

使用背景:

springboot+maven构建的多模块项目,没有使用springcloud,根项目下有多个module,一个module有springboot启动类,其他module没有启动类,作为module被有springboot启动类的module所引用。

1.根目录下项目maven packaging要声明为pom

 <packaging>pom</packaging>

 2.多个模块管理:

   <modules><module>test-common</module><module>test-system</module><module>test-core</module></modules>

3.build构建声明:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.1</version><configuration><source>${java.version}</source><target>${java.version}</target><encoding>${project.build.sourceEncoding}</encoding></configuration></plugin></plugins></build>

4.有启动类那个module的项目maven packaging要声明为jar

 <artifactId>test-core</artifactId><packaging>jar</packaging>

5.有启动类那个module的pom.xml引入其他子模块

 <dependencies><dependency><groupId>com.daniels</groupId><artifactId>test-system</artifactId><version>1.0-SNAPSHOT</version></dependency><dependency><groupId>com.daniels</groupId><artifactId>test-common</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>

6.有启动类那个module的pom.xml增加build构建插件:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>3.1.3</version><executions><execution><goals><goal>repackage</goal></goals></execution></executions></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>3.1.0</version><configuration><failOnMissingWebXml>false</failOnMissingWebXml><warName>${project.artifactId}</warName></configuration></plugin></plugins><finalName>${project.artifactId}</finalName></build>

其他没有启动类的module的pom.xml只用引入需要的jar即可,示例:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>com.daniels</groupId><artifactId>test</artifactId><version>1.0-SNAPSHOT</version></parent><artifactId>test-system</artifactId><description>系统模块</description><dependencies><dependency><groupId>com.daniels</groupId><artifactId>test-common</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies></project>

如此便可将有启动类的module打包成Jar,同时将其他引用到子module打包进该jar中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/46257.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Win11任务栏当中对 STM32CubeMX 的堆叠问题

当打开多个 CubeMX 程序的时候&#xff0c;Win11 自动将其进行了堆叠&#xff0c;这时候就无法进行预览与打开。 问题分析&#xff1a;大部分ST的工具都是基于 JDK 来进行开发的&#xff0c;Win11 将其识别成了同一个 Binary 但是实际上他们并不是同一个&#xff0c;通过配置…

redis源码分析之底层数据结构(一)-动态字符串sds

1.绪论 我们知道redis是由c语言实现的&#xff0c;c语言中是自带字符串的&#xff0c;但是为什么redis还要再实现自己的动态字符串呢&#xff0c;这种动态字符串的底层数据结构是怎样的呢?接下来我们带着这些问题来看一看redis中的动态字符串sds。 2.sds的组成 struct __at…

pico+unity3d项目配置

重点&#xff1a;unity编辑器版本要和pico的sdk要求一致、比如&#xff1a; 对于 Unity 2022.1.14 及以上版本&#xff0c;若同时在项目中使用 URP、Linear 色彩空间、四倍抗锯齿和OpenGL&#xff0c;会出现崩溃。该问题待 Unity 引擎解决。对于 Unity 2022&#xff0c;若同时…

多个版本JAVA切换(学习笔记)

多个版本JAVA切换 很多时候&#xff0c;我们电脑上会安装多个版本的java版本&#xff0c;java8&#xff0c;java11&#xff0c;java17等等&#xff0c;这时候如果想要切换java的版本&#xff0c;可以按照以下方式进行 1.检查当前版本的JAVA 同时按下 win r 可以调出运行工具…

Pytorch张量

在conda的环境中安装Jupyter及其他软件包 Pytorch 建立在张量&#xff08;tensor&#xff09;之上&#xff0c;Pytorch张量是一个 n 维数组&#xff0c;类似于 NumPy 数组。专门针对GPU设计&#xff0c;可以运行在GPU上以加快计算效率。换句话说&#xff0c;Pytorch张量是可以运…

wget介绍

wget介绍 wget是一个广泛使用的命令行工具&#xff0c;主要用于从网络上自动下载文件。它支持HTTP、HTTPS和FTP等多种协议&#xff0c;具有递归下载、断点续传、限速下载等功能&#xff0c;使其成为一个强大而灵活的下载工具。以下是对wget的详细介绍和使用方法的概述&#xf…

解决QT creator中文乱码问题

1.首先设置文本编辑器为UTF-8 先在工具-选项-文本编辑器-behavior部分选择文件编码为UTF-8&#xff0c;紧接着是选择“如果编码是UTF-8则添加”&#xff0c;如下图 2.设置ext code for tools 为system 具体解决办法是 工具-选项-环境-interfaces这一栏有一个“Text code for to…

最新JJWT 0.12.6学习

本文参考的是jjwt官方github&#xff0c;链接在此&#xff0c;本文会持续跟进jjwt的最新版本 GitHub - jwtk/jjwt: Java JWT: JSON Web Token for Java and Android 简介 JJWT&#xff08;Java JWT&#xff09;是Java平台上相当流行的用于生成Json Web Token的库&#xff0c…

DP讨论——桥接模式

学而时习之&#xff0c;温故而知新。 敌人出招&#xff08;使用场景&#xff09; 客户不断变化的需求是敌人&#xff0c;加个需求&#xff0c;再加个需求&#xff0c;然后内部实现不断新增类。 你出招 采用桥接模式。 一个是桥梁对象&#xff0c;另一个是业务实现类。客户通…

云计算安全需求分析与安全保护工程

云计算基本概念 云计算&#xff08;Cloud Computing&#xff09;是一种通过互联网提供计算资源和服务的技术。它允许用户按需访问和使用计算资源&#xff0c;如服务器、存储、数据库、网络、安全、分析和软件应用等&#xff0c;而无需管理底层基础设施。以下是云计算的基本概念…

快捷:通过胶水语言实现工作中测试流程并行、加速

通过胶水语言实现工作中测试流程并行、加速 通过胶水语言实现工作中测试流程并行、加速工作场景&#xff08;背景&#xff09;问题抽象&#xff08;挑战&#xff09;如何做&#xff08;行动&#xff09;获得了什么&#xff08;结果&#xff09;后记相关资源 通过胶水语言实现工…

代码随想录(day6)哈希表-求两个数组的交集

什么是红黑树&#xff0c;参考链接【数据结构】史上最好理解的红黑树讲解&#xff0c;让你彻底搞懂红黑树-CSDN博客 题目&#xff1a; 注意&#xff1a;字典用{}符合、元组用()符号、列表用[]符号 table.get(num,0)1的意思 class Solution(object):def intersection(self, n…

qt 用代码添加 QPushButton

在 Qt 中使用代码添加 QPushButton 控件是一个基本的操作。以下是一个简单的例子&#xff0c;展示了如何在 Qt 的一个继承自 QWidget 或 QMainWindow 的类中添加一个 QPushButton&#xff1a; 首先&#xff0c;你需要包含必要的头文件&#xff1a; #include <QWidget> /…

【C++】——入门基础

文章目录 命名空间输入与输出缺省参数函数重载引用内敛函数指针控制nullptr 命名空间 当C语言遇到命名冲突时&#xff0c;很难解决&#xff0c;所以C关键字namespace就是针对这种问题的。 如何使用命名空间内的成员呢&#xff1f; 加命名空间名称及限定符&#xff08; &#…

JS【详解】数据类型转换

数值 → 其他数据类型 let num 123;数值 → 字符串 结果为由该数值组成的字符串 String(num) // 结果为 123 String(NaN) // 结果为 NaNnum num.toString(); 数值 → 布尔值 0 , -0 , NAN 转为布尔值后为 false其他数值转为布尔值后为 true Boolean(num )// 取反再取反 …

husky 和 lint-staged 构建代码项目规范

目录 前言 最简单的方法 过 scripts 来解决如果检测工具多&#xff0c;需要多次处理 通过 husky(哈士奇)来解决容易遗忘的问题 1. 安装 2. husky init 3. 试一试​ lint-stadge 只 lint 改动的 1. 安装 2. 修改 package.json 配置 3. 添加 npm 脚本: 4.使用 Husky…

MAVSDK动态库与静态库及mavsdk_server程序macOS平台编译与安装

1.克隆mavsdk: git clone https://github.com/mavlink/MAVSDK.git --recursive 2.编译静态库 cmake -Bbuild/default -H. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF 生成makefile 生成成功,开始编译 cmake --build build/default -j8 成功生成libmavsdk.a 开…

Java之Stream流的笔记--手写版

Stream流通过讲集合或数组转换成链状流式的结构&#xff0c;简化了集合和数组进行排序、筛选、遍历、去重、统计等操作。主要包括创建流、中间操作、终结操作。若流中无终结操作&#xff0c;则中间操作不会执行&#xff1b;流是一次性的&#xff0c;使用完就会失效&#xff0c;…

vmware workstation 虚拟机安装

vmware workstation 虚拟机安装 VMware Workstation Pro是VMware&#xff08;威睿公司&#xff09;发布的一代虚拟机软件&#xff0c;中文名称一般称 为"VMware 工作站".它的主要功能是可以给用户在单一的桌面上同时运行不同的操作系统&#xff0c;它也是可进 行开发…

Jump Point Search (JPS) 路径规划算法

Jump Point Search (JPS) 是一种优化的路径规划算法,主要用于加速A*搜索算法在网格地图上的性能。它通过减少要评估的节点数量来实现这一目标。以下是对JPS算法的详细解释: 基本思想 JPS利用了路径规划中的对称性,跳过不必要的节点,直接跳到关键节点(即“跳点”)。这些…