Maven assembly打包文件被覆盖问题

RK3588嵌入式Linux开发:uboot.img合成与rkbin固件打包实战指南 嵌入式Linux系统启动依赖于引导加载程序U-Boot,其镜像合成是开发的关键环节。在Rockchip平台上,uboot.img并非简单二进制文件,而是包含TPL、SPL、U-Boot proper及DDR初始化固件的结构化镜像,需从rkbin仓库获取匹配的DDR固件和BL31。正确合成uboot.img能确保BootROM识别并加载,避免启动失败,广泛应用于RK3588等芯片的固件开发。本文详细解析uboot.img的合成逻辑、rkbin筛选及实操技巧,帮助开发者掌握U-Boot打包全流程。 阅读详情

Maven的assembly插件使用:

最近在做一个小工程,利用java启动运行。

为了简单方便使用运行,利用maven的assembly将需要使用的jar都打包到一个jar中。这样无论拷贝到哪里,只有运行就可以,不用需要任何配置。

配置时指定mainClass,运行java的main函数时则可以不用指定包含main函数的类路径名。如运行下面的jar文件则非常简单方便(后台运行):nohup java -jar CalculateScore.jar &

第一步:需要在pom的xml中添加配置;

第二步:配置maven的Run Configurations,Goals配置成assembly:assembly即可。

上面的过程一直在使用,很正常。但最近的小应用却出了问题:

打出的jar包不产生日志文件,具体说是不生成log4j的日志信息,程序运行正常也不报错,任何提示都没有。

 

网上各种查询,没有结果。为了解决问题就各种尝试。

 

脑子里一直有疑问:以前的都正常使用,都可以打印日志,为什么这个就不行呢?

各种尝试都不行,于是就反编译jar包来看。结果发现log4j.properties文件不是自己的那个文件,不知道是哪个包里的,而自己程序中都使用的Logger.getLogger(name)的形式,所以都无法打印日志信息。

 

问题来了,为什么不是自己的那个log4j配置文件呢?

Maven打包的时候Console中都有日志信息,仔细查看发现,多次提示log4j的配置已经加入并跳过。

于是猜想:一定是打包的过程中,先加载了其他jar中的log4j的配置文件,而以后的包括自己应用中的log4j的配置文件都被忽略了。

 

可是问题又来了,自己以前使用同样的方式,也使用了很多第三方包,都包含有log4j的配置文件,为什么都没有问题呢?查看以前的打的包,log4j的配置文件都是自己工程中配置的,这是为什么呢?

 

于是就开始比较打包的配置过程是否有差别,又有新发现:

Maven打包的Run Configurations配置中有项Base directory,这里配置有问题。

如下面的两张图所示:

如果Base directory中配置的是通过Browse Workspace选择的工程就会产生上面的问题;

如果Base directory中配置的是通过Browse File System选择的文件地址路径就不会产生上面的问题。

具体为什么会出现这种情况,有待研究。

 

会产生问题的配置方式:

wKioL1Xmz3jiXp7mAASkeQR_2aI145.jpg

 

不会产生问题的配置方式:

wKiom1XmzXeAqrcgAASqDnDPmgQ009.jpg


毕设案例|保安公司智慧管理系统的建设与开发方案 "保安公司智慧管理系统是一款专为保安行业设计的高效信息化解决方案,其核心功能涵盖了从人力资源管理到业务运营的各个方面。系统以Java作为开发语言,结合SpringMVC框架,确保了稳定性和可扩展性,而MySQL数据库则提供了强大的数据存储和处理能力。首先,系统允许用户设置各类保安,如门卫、巡逻员等,实现精细化分类管理。其次,保安信息管理模块包括详细的人事档案、资格证书、培训记录等,便于人员追踪和考核。部门和城市设置方便公司层级管理和异地项目管理。岗位设置与时间安排精确到分钟,确保排班科学合理。 阅读详情

相关推荐

冒险岛脚本函数大全:cm.sendYesNo和cm.warp的20个实战用法

本文深入解析了冒险岛脚本中cm.sendYesNo和cm.warp两个核心函数的20个实战应用场景。从基础的确认对话框交互、条件判断,到复杂的装备强化系统、动态传送与副本入口逻辑,文章通过大量代码示例展示了如何组合运用这两个函数,实现从简单NPC到复杂任务系统的进阶脚本开发,并分享了状态管理、错误处理与性能优化等最佳实践。

t4y5u6i7o的博客 1051

maven-assembly-plugin 同名类覆盖时遇到的一点问题

maven-assembly-plugin 同名类覆盖时遇到的一点问题 背景: 一个maven项目,依赖了一些jar包,我想修改某个jar包里面的某个类(比如: org.abc.classA)。由于它并没有提供很好的拓展入口,我选择投机取巧的方法,在当前项目下新建一个 org.abc.classA 类,实现我自己的逻辑。因为本地classes先于依赖的jar包被加载,同全限定类名只会被加载一次。所以就完成了对 org.abc.classA 类的覆盖。 但是,实际打包后执行却发现加载的依旧是原来的类。 我.

我是个农民的博客 2323

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

Vivado2019.1 ZYNQ7020无Uart SDK调试打印调试信息xil_printf

泛红尘的博客 2996

Apache Maven Assembly Plugin使用记录

2.5.4以上版本使用时,fileSet标签下的outputDirectory不能再使用/作为开始的字符表示输出的相对目录了,可以使用点表示当前目录。使用Assembly时,fileSet顺序决定最终打包进去的文件,前面的fileSet如果已经放置了同名文件,后面的fileSet不会覆盖。打包是开发、测试及发版不可避免的步骤,这里对assembly使用过程中遇到的问题做下记录。下面的配置示例中,最终打包中的a.txt包含的是prod内容。1.pom引入plugin依赖。这里也有一个参考文章,

wohaoeya的专栏 350

ISO 26262中的失效率计算:Mission profile的使用

Mission profile:任务剖面,即产品在完成规定任务这段时间内所经历的时间和环境的时序描述;集成电路在工作时环境温度是在不停变化的,同时也存在运行状态和非运行状态;为此标准提出了根据任务剖面(Mission profile)以及集成电路的实际结温来评估热幅度变化、循环温度幅值等因素的影响;汽车电子元器件相关的Mission profile参考IEC TR 62380:Table 11。

weixin_47071127的博客 4807

别光看教程了!手把手带你用STM32F103C8T6最小系统板点亮第一个LED(附完整电路图)

本文详细介绍了如何使用STM32F103C8T6最小系统板点亮第一个LED,从硬件连接到软件开发环境搭建,再到编写和下载程序,手把手教你完成STM32入门的第一步。适合初学者快速上手STM32开发,附完整电路图和代码示例。

weixin_28678831的博客 193

关于maven打包时, 资源文件没有被打包进来的问题

解决方案:手动将src/main/resources也添加到配置就可以了。按如下的pom.xml配置,maven打包时,既能包含src/main/java下的XML文件,也能包含资源目录(src/main/resources)下面的资源文件。则只会打包该配置指定的目录,不会打包src/main/resources目录,即使它是项目的资源目录。这一点需要特别注意!

halu98541的博客 2798

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

【java】java覆盖jar里面的方法

前言 覆盖jar里面的方法 bean 方式一 目标:bean 方式:新建一个接口实现类,实现目标方法所对应的接口,然后重写需要改动的方法,最后拿着这个新的实现类去执行逻辑 普通的类 方式一 目标:普通的类 方式:直接创建同名同路径的类,重写方法。 原因:同名,同路径的类,优先从当前项目查找。除了需要修改的方法,其他的最好和原来的一致。 ...

Meditation_Crazy 1296

基于OpenClaw的自动化文件管理与文档分类系统设计与实现

本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。

一键难忘的博客 753

携程滑块、点选验证码登录识别逆向

本文分析了携程登录系统的风控机制,主要包含三种验证场景:无验证码、滑块验证码和二次图标点选验证码。通过跟踪risk_inspect风控接口,发现验证流程采用标准AES加密,需提交设备指纹等加密信息。当触发验证码时,需额外提交包含轨迹坐标的verify_msg参数及token/rid参数。最终通过风控检测后,需使用一致的指纹参数和验证token完成加密登录。文章强调所有分析仅用于学习,代码实现需确保符合法律规范。

码王吴彦祖的博客 1097

maven打包替换依赖包的配置文件

问题 今天遇到个头疼的问题,是zk的配置文件zookeeper.properties被替换了,选择maven,profiles没用。后来发现,打进jar包里的是依赖的jar包的配置文件,被覆盖了。因为提交spark任务的jar包通常是jar-with-dependencies。既需要这个jar又想用自己项目里的properties。 解决方案是:通过assembly.xml文件的方式设置打包需...

Luis的博客 1232

【YOLOv11多模态融合改进】| CVPR2025 LCA轻量交叉注意力 双向模态交叉引导 + 双支路噪点抑制,兼顾纹理与热目标特征融合

可见光模态富含纹理、色彩、边缘细节,但夜间/低照度场景信噪比极低,暗区噪声泛滥;红外模态依靠热辐射凸显弱小目标、暗区物体轮廓,但缺失真实色彩与精细纹理。简单拼接/逐加融合仅做浅层特征叠加,无法建立可见光纹理、红外热特征的双向引导关联,两类模态互补信息无法精准互通;普通自注意力仅单模态内部建模,跨模态交互匮乏,红外热目标易被可见光暗噪声淹没,可见光有效纹理易被红外灰度信息覆盖;

Limiiiing的博客 115

maven-assembly-plugin 打包后 grpc请求异常

描述: 一个 grpc 客户端项目,在本地直接通过idea启动测试都没问题。而打成可执行jar包后,请求服务端时会抛出io.grpc.StatusRuntimeException:UNKNOWN 、 java.nio.channels.UnsupportedAddressTypeException 异常。

我是个农民的博客 1657

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

浅谈assembly插件打包分发机制

后面又会再打包一次src/main/assembly/${env.devMode}/resources目录下的资源文件,并排除该目录下的disconf.properties文件,这个时候假如该目录下有一个a.xml文件和之前的打包的文件重名了,那么会覆盖掉前面的a.xml。今天为什么要讲这个插件,它其实挺重要的,现在很多项目也在使用这个插件去做多环境的文件配置,一不小心就容易造成线上事故,你会发现你本地代码里面明明改了某个资源文件,但是到了其它环境就不生效,原因是你忽略了项目的打包机制。

m0_46433333的博客 404

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Apache Dubbo项目中serialize.allowlist文件被覆盖问题的分析与解决方案

在Apache Dubbo 3.2.5版本中,开发者在使用maven-assembly-plugin打包包含依赖的单一JAR文件时,遇到了一个关于安全序列化白名单文件(security/serialize.allowlist)被意外覆盖的问题。这个问题直接影响了Dubbo框架的安全序列化功能,导致自定义的白名单类无法被正确识别。 ## 问题现象 开发者在本地的security/serializ...

gitblog_00170的博客 517

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

java 项目打包jar 的配置(springboot )

springboot 项目 打包jar 文件

XuWei1213的博客 1035

storm启动spring项目Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'处理

转载地址:http://m.blog.youkuaiyun.com/blog/houyefeng/44200995# 问题描述 最近在将开发的storm应用发布到storm集群上,应用启动时遇到“Failed to read schema document 'http://code.alibabatech.com/schema/dubbo/dubbo.xsd'”异常,导致不能正常启

luyu1999的专栏 518

maven-assembly-plugin 和 maven-shade-plugin 比较

maven-assembly-plugin 和 maven-shade-plugin Flink scala 打包报错 Exception in thread "main" com.typesafe.config.ConfigException$UnresolvedSubstitution: reference.conf @ jar:file:/Users/wending/IdeaProject...

csdn问鼎 3871

Maven核心插件实战指南:从基础配置到高级应用

本文深入解析Maven核心插件的实战应用,涵盖maven-source-plugin、maven-assembly-plugin、maven-shade-plugin和maven-antrun-plugin。通过详细的配置模板和真实场景示例,指导开发者从基础配置到高级应用,解决源码打包、依赖冲突、定制化打包等常见问题,提升项目构建效率与协作体验。

xray4的博客 861

Maven全量包打包指南:maven-shade-plugin与assembly-plugin实战

在Java项目构建与部署中,依赖管理是核心环节。Maven通过坐标机制管理依赖,但标准打包生成的JAR不包含依赖库,导致部署时出现ClassNotFoundException。为解决此问题,需要构建包含所有依赖的“全量包”(Uber Jar),确保应用在不同环境中的一致性。这涉及到类加载机制、资源合并与依赖冲突处理等技术原理。通过maven-shade-plugin或maven-assembly-plugin,开发者可以创建可独立部署的JAR包,这在微服务架构和容器化部署场景中尤为重要。本文以maven-s

weixin_28826961的博客 283

Maven3种打包方式之一maven-assembly-plugin的使用

在Maven中,主要有3个插件可以用来打包: maven-jar-plugin,默认的打包插件,用来打普通的project JAR包; maven-shade-plugin,用来打可执行JAR包,也就是所谓的fat JAR包; maven-assembly-plugin,支持自定义的打包结构,也可以定制依赖项等。 我们日常使用的以maven-assembly-plugin为最多,因为大数据项目...

qq_32736999的博客 8万+

maven使用assembly打包zip文件

在pom文件中引入assembly插件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-a...

marylgao技术专栏 2584

maven打包插件——maven-assembly-plugin

本文是对 maven-assembly-plugin常用配置的介绍 maven-assembly-plugin作用:用于将 Maven 项目打包成可执行的程序或分发包,将项目中的代码、资源和所有依赖包的内容打成一个程序集

一个努力的小码农 5384

Maven的三种打包方式(jar、shade、assembly)

文章目录01 引言02 assembly打包2.1 介绍2.2 使用2.3 字段解析03 jar打包3.1 介绍3.2 使用3.3 字段解析04 shade打包4.1 介绍4.2 使用4.3 字段解析05 文末 01 引言 Maven有三种打包方式,分别为: assembly:自定义的打包结构,也可以定制依赖项等; jar:默认的打包方式,用来打普通的project JAR包; shade:用来打可执行jar包,也就是所谓的fat JAR包。 下面来讲解下这三种的打包方式。 02 assembly打包

阿甘兄 1万+

idea 中maven assembly 打包项目

使用assembly插件来打包项目: 1>在pom.xml中配置assembly插件 <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <maven.compiler.source>1.8</...

神罗天征 7550
上一篇: Maven 的assembly插件使用
下一篇: Java记录 -19- 单例模式
架构师的清醒
博客等级 码龄14年 291粉丝 397原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值