微服务项目打包时将jar包放到统一目录下

Spring Boot 打包部署常见问题汇总(jar vs war) Spring Boot应用打包部署策略对比 本文对比分析了Spring Boot应用的两种部署方式:可执行JAR包和传统WAR包。JAR包自带内嵌服务器,部署简单快捷,适合云原生环境;WAR包需依赖外部服务器,便于资源共享,适合传统架构。文章详细介绍了两种方式的配置方法,包括POM文件修改和启动类调整,并比较了它们的优缺点:JAR包独立性强但占用资源多,WAR包管理集中但部署复杂。通过清晰的代码示例和对比表格,帮助开发者根据实际需求选择合适的部署策略。 阅读详情

这是 maven 的方式,通过maven插件实现 jar 包复制到指定目录。

在最外层 pom 文件下定义变量

<properties>
    ......
    <copy.jar.directory>D:/jar-output</copy.jar.directory>
</properties>

在对应服务的 pom 文件下添加 plugin。

<build>
	<plugins>
	    <!-- 把jar包拷贝到指定目录位置 -->
	    <plugin>
	        <artifactId>maven-antrun-plugin</artifactId>
	        <executions>
	            <execution>
	                <id>copy</id>
	                <phase>package</phase>
	                <configuration>
	                    <target>
	                        <copy todir="${copy.jar.directory}">
	                            <fileset dir="${project.build.directory}">
	                                <include name="${project.artifactId}.jar" />
	                            </fileset>
	                        </copy>
	                    </target>
	                </configuration>
	                <goals>
	                    <goal>run</goal>
	                </goals>
	            </execution>
	        </executions>
	    </plugin>
	</plugins>
</build>

网上常见的是在 configuration 中使用 tasks 标签,但是在新版本中 tasks 已经被移除了
You are using 'tasks' which has been removed from the maven-antrun-plugin. Please use 'target' and refer to the >>Major Version Upgrade to version 3.0.0<< on the plugin site.
这里使用了 target 来替代。

也可以不指定路径,直接使用最上级模块的项目位置,需要在子模块中再引入一个插件获取项目根目录位置,并设置为属性 main.basedir。

<!-- 获取项目根目录位置 -->
<plugin>
    <groupId>org.commonjava.maven.plugins</groupId>
    <artifactId>directory-maven-plugin</artifactId>
    <version>0.1</version>
    <executions>
        <execution>
            <id>directories</id>
            <goals>
                <goal>highest-basedir</goal>
            </goals>
            <phase>initialize</phase>
            <configuration>
                <property>main.basedir</property>
            </configuration>
        </execution>
    </executions>
</plugin>
<!-- 把jar包拷贝到指定目录位置 -->
<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <executions>
        <execution>
            <id>copy</id>
            <phase>package</phase>
            <configuration>
                <target>
                    <copy todir="${main.basedir}/jar-output">
                        <fileset dir="${project.build.directory}">
                            <include name="${project.artifactId}.jar" />
                        </fileset>
                    </copy>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
Maven打包全解析:从Jar包原理到Spring Boot实战 在Java开发中,Jar包作为代码交付的标准格式,其打包方式直接影响应用的部署与运行。理解Jar包的本质——一个包含MANIFEST.MF清单文件的特殊ZIP压缩包,是掌握打包技术的基础。Maven作为主流构建工具,通过其生命周期管理和插件机制,提供了多种打包策略,从仅包含项目代码的“瘦Jar”到集成所有依赖的“Fat Jar”,每种方式都对应不同的应用场景。在工程实践中,合理选择打包方式能有效解决依赖冲突、资源加载等常见问题,提升部署效率。本文聚焦于**Maven打包**和**可执行Jar**这两个核心热 阅读详情

相关推荐

Java项目打包成JAR文件完整指南与实战

参数含义示例c创建新的 JAR 文件jar c...f指定输出文件名v输出详细处理信息m包含自定义 MANIFEST.MFx解压 JARt列出内容u更新现有 JAR最常用组合为cvf,表示创建、详细输出、指定文件名。当多个依赖包含相同类名(如Guava和Android SDK中的)时,可能发生类加载冲突。

weixin_36151775的博客 1189

Maven 构建镜像报错 Caused by: org.apache.maven.plugin.MojoFailureException: You are using ‘tasks‘ which ha

原因有两个 第一就是日志中提示的 maven maven-antrun-plugin 版本 必须升至3.0.0 版本;插件 让maven 走默认系统版本 去掉项目版本影响 maven 现象 解决问题。1.通过jenkins 构建项目时候 构建镜像报错。第二就是 在pom 文件里直接去掉。

sinat_37792529的博客 5811

农经权二轮延包—地块示意图生成

本文介绍了地块示意图制作软件的使用方法及模板制作要点。软件通过设置六个参数(示意图模板、属性数据、地块DBF、导航图、地块图片及存放位置)自动生成Word文档,并可导出PDF。文章详细说明了5页Word模板的制作过程,包括页脚三栏设置和页码插入技巧,支持每户最多28个地块的情况。同时指出该软件生成的图片分辨率(300dpi)满足清晰度要求,并提及软件免费提供插件但收费提供后续服务。

weixin_47364423的博客 1112

Maven利用maven-antrun-plugin插件拷贝文件 copy

今天在做Docke镜像的时候想要把编译出来 的Jar包自动复制到指定目录下,网络找到了maven-antrun-plugin 这个插件,在这个过程中遇到了几个问题,现记录下来,记录时候 2021-12-13。 完整代码如下: <!--docker需要的jar的复制操作--> <plugin> <artifactId>maven-antrun-plugin</artifactId> .

面向未来 8726

Unity海洋渲染实战:Ceto Ocean System核心原理与高级应用指南

实时水面渲染是计算机图形学中的重要课题,涉及波浪模拟、光照交互和着色器编程等核心技术。其原理通常基于物理模型,如使用Gerstner波模拟规则海浪,或通过快速傅里叶变换(FFT)处理频谱数据生成随机海面。这些技术的价值在于能以可控的性能开销,在游戏中实现具有体积感、反射和折射效果的真实水体。在开放世界、海战模拟等应用场景中,专业的海洋系统如Ceto Ocean System,通过模块化架构整合了波浪生成、动态网格和渲染管线,为开发者提供了完整的解决方案。本文深入探讨了其双引擎波浪系统和多层渲染结构,并分享了

weixin_29002595的博客 279

【华为OD机试】真题E卷-一种字符串压缩表示的解压(C++)

有一种简易压缩算法:针对全部为小写英文字母组成的字符串,将其中连续超过两个相同字母的部分压缩为连续个数加该字母,其他部分保持原样不变。例如:字符串aaabbccccd 经过压缩变成字符串 3abb4cd请您编写解压函数,根据输入的字符串, 判断其是否为合法压缩过的字符串若输入合法则输出解压缩后的字符串 否则输出字符串!error来报告错误。

u014481728的博客 892

You are using ‘tasks‘ which has been removed from the maven-antrun-plugin. Please use ‘target‘ and r

将maven配置中的<tasks>换成<target>

qq_63256924的博客 1555

手把手教你学Simulink实例--基于Simulink的电力电子系统电池管理系统(BMS)设计与仿真实例

本文详细介绍了基于Simulink的电池管理系统(BMS)设计与仿真全过程。首先阐述了BMS在安全防护、寿命延长和性能优化方面的必要性,分析了新能源汽车、光伏储能等典型应用场景的技术指标要求。接着详细讲解了Thevenin等效电路和多电平电池模型构建方法,并给出SOC估算、故障诊断等核心算法的MATLAB实现代码。通过设计正常充放电、过充保护等多场景仿真测试,验证了系统在SOC跟踪精度(误差<1.5%)和故障响应速度(<10ms)方面的优异性能。文章还提出了参数优化方法和未来AI融合、数字孪生等发展方向,提

xiaoheshang_123的博客 376

Maven打包报错

Maven打包报错

ggssc的博客 1055

RK3588 平台部署实战:OpenCV + LibTorch + FFmpeg 环境搭建与深度学习推理全流程解析

现在,你已经掌握了在RK3588上搭建OpenCV+LibTorch+FFmpeg环境的完整流程,也完成了深度学习模型的部署测试。不妨从一个具体的应用场景入手(如检测自家宠物的品种),亲手打造属于你的第一个边缘智能应用——当你看到模型在RK3588上精准输出结果时,你会发现:嵌入式深度学习的门槛,其实并没有想象中那么高。这些依赖是编译OpenCV、FFmpeg的基础,安装过程中若提示权限不足,可在命令前加。若能输出预测的类别索引,则说明环境搭建成功,模型推理流程通畅。文件,实现模型加载、图像预处理与推理。

FJN110的博客 532

【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站(上)——环境选型、设计编码到部署上线

【WorkBuddy专栏43】如何利用WorkBuddy开发一个PC网站(上)——环境选型、设计编码到部署上线

AI人人懂 2237

IDEA 报错These modules have been removed from Maven stucture

File-Settings-Maven-lgnored Files  把打勾的工程去掉

hao_yunfeng的博客 1万+

第3版•系统集成项目管理工程师(中级) │ 第12章 执行过程组 ✦ 管理沟通

🥏第3版•系统集成项目管理工程师(中级) │ 第12章 执行过程组 ✦ 管理沟通

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

解决springboot的项目打成jar包,其他项目无法引用

采用feign进行消费者与提供者进行开发的时候,往往会把公共的代码部分打成jar包进行引用,可以避免冗余的开发。例如一些config的配置文件、domon文件、以及filter跟工具类,我把这些统一叫做common项目。但是当我把common打包成jar包,引入其他项目的时候,可以正常引用,但是里面的类却无法引用。原因如下: 1. 区分可执行jar包跟普通jar包。 可执行jar包为通过命令-jar ***.jar的方式可以直接运行,jar包解压出来的文件夹目录是 所有的commo...

tianya0138的博客 4226

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

在聚合Maven项目中,指定打包jar架包到同一文件夹目录

前言: 最近,使用SpringCloud微服务框架开发新项目。目前,进入了测试阶段,需要在服务器上部署测试环境。一开始本打算使用docker容器化部署,简化搭建服务成本,为了能快速测试就直接使用命令启动。但是在上传架包的时候,我感觉非常麻烦。因为,每个微服务的架包都在自己项目target文件夹,总是要来回切换目录上传。经过一番搜索,我找到了一种方式可以指定同一个文件夹目录存放所有微服务架包。 正文: 实现方式比较简单,只需在pom文件的build模块配置一个《maven-antrun-plugin插件

hanxiaozhang的博客 2001

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

maven 打包时去掉jar_springboot 打包插件去除jar包瘦身

1、pom文件配置1.1 添加maven-dependency-plugin插件用于将引用的jar包拷贝到指定的路径,便于后续tomcat启动指定依赖包路径org.apache.maven.pluginsmaven-dependency-plugincopypackagecopy-dependencies${project.build.directory}/lib使用这个插件构建完之后的目录结构多...

weixin_39578516的博客 1583

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java小白必读,一文带你理解什么是war包和jar包

JAR包和WAR包是Java应用的两种打包格式。JAR包用于普通Java程序或库,可独立运行或作为依赖库;WAR包专为Web应用设计,包含WEB-INF目录和Web资源,需部署到Servlet容器。随着SpringBoot的流行,内嵌服务器的可执行JAR成为Web应用新选择,但传统WAR包在企业级部署中仍有用武之地。选择打包方式取决于应用类型和部署环境需求。

liwenxiang629的博客 1650

springcloud微服务移动jar包到特定目录统一管理

1、pom文件添加plugin插件。

海的声音的博客 413

AgileBoot项目打包部署:War包与Jar包两种方式详解

🔥 **AgileBoot** 作为一款基于SpringBoot + Vue3的全栈快速开发脚手架,提供了两种灵活的项目打包部署方式:**Jar包独立运行**和**War包容器部署**。无论你是个人开发者还是企业用户,都能找到最适合的部署方案!✨ ## 📦 两种打包方式概述 在AgileBoot项目中,你可以根据实际需求选择不同的打包方式: - **Jar包部署**:内置Tomcat容器

gitblog_07312的博客 452

springboo打包--微服务打包

本文介绍了在Spring Boot微服务项目中统一打包部署的四种方案。推荐使用父工程统一聚合Jar的方式,通过maven-dependency-plugin自动收集各子模块jar到统一目录。其他方案包括使用Assembly插件生成发布包、Jenkins脚本统一收集以及子模块自行Copy(不推荐)。重点分析了各方案的优缺点,其中父工程聚合方式既能保持微服务独立性,又能实现高效部署,是最优选择。文章还详细说明了Maven构建顺序如何保证该方案的可行性。

weixin_44614631的博客 1195

IDEA打包微服务项目

本文介绍了使用Maven进行项目打包的配置过程。项目采用多模块结构,包含父模块create-demand和demand-common,以及多个子模块。重点讲解了pom.xml文件的配置,包括父模块的packaging类型设为pom,子模块设为jar,并配置Spring Boot Maven插件和Maven Surefire插件。打包过程通过IDEA的Maven插件执行,最终在target目录生成可执行的Spring Boot应用jar包。文章提供了详细的XML配置示例和可视化操作流程,帮助开发者完成项目打包

记不住所以写下来 822

Maven怎么打包SpringCloud项目,使打包的jar文件最小并运行?

最近在研究怎么部署SpringCloud项目比较快速方便,发现打包SpringCloud项目各个微服务模块,打出的包都很大(都是100多M)上传服务器都很久;找了下度娘,发现是把底下的依赖库lib都打包进去了,其实依赖库不需要每次都打包,只有变动的时候需要打包,这样依赖库从包里面分离出来,打包后就只有10多kb大小;有了思路,就开始实践!但是中间自己折腾时还是遇到很多问题,发现自己对Maven很多知识点不懂。 进入实践环节,需要搞清楚一些Maven的pom文件相关配置知识点 #一、dependencie.

爱奇途 2479

Maven--打包方式详解 (pom、war、jar)

摘要:Maven的packaging标签定义了项目打包类型,主要包括三种:1)pom类型用于管理多模块项目的依赖和聚合,不生成代码包;2)jar类型是Java标准包,适合可执行程序或类库;3)war类型专用于Web应用,需部署到Servlet容器。SpringBoot项目默认打包为jar(含内嵌服务器),也可配置为war部署到外部容器。选择打包类型需根据项目特性:pom用于父项目管理,jar用于微服务/类库,war用于传统Web应用。多模块项目中通常组合使用这三种类型。

你我约定有三的博客 1667

Spring Boot项目JAR包转换为WAR包:从零到部署的完整指南

Spring Boot默认将项目打包为可执行的JAR文件,内置了Tomcat、Jetty等Servlet容器,极大简化了应用的部署流程。然而,在某些场景下(如企业级环境需部署到独立Tomcat服务器),将项目转换为WAR包成为必要操作。本文将详解JAR转WAR的核心步骤、原理及注意事项,助你无缝衔接传统部署流程。

weixin_39444768的博客 1921

使用Maven为一个项目生成多个Jar包,将一个目录打成jar包

今天又学了一招使用Maven为一个项目生成多个Jar包,或者说将某一个目录打成一个jar包。 原文地址 虽然在Java平台下,各种构建工具如Maven、Gradle、SBT已经得到了较为广泛地运用,同时Maven约定的模块目录结构也得到了业界的认可,成为了Java平台下项目结构的事实标准。但我们总无法避免与各种遗留系统或老系统打交道。在没有Maven的时代,是Ant统治的时代,它因为提

天天的专栏 2万+
上一篇: MybatisPlus 一些技巧
下一篇: nginx 代理 mysql 连接
一只小小翠
博客等级 码龄9年 154粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值