Maven 关于打包插件与Resource中exclude的问题

Android AAR嵌套依赖打包难题:本地AAR传递性解决方案与Maven仓库实践 在Android模块化开发中,依赖管理是构建稳定项目的基石。Gradle作为主流构建工具,通过声明式配置管理着项目中的库依赖关系,其核心原理在于依赖解析与传递性机制。然而,当涉及本地AAR(Android Archive)文件的嵌套引用时,标准的依赖管理机制面临挑战:本地AAR的类、资源和清单文件在打包时无法自动合并到上层AAR中,导致分发后的组件缺失关键依赖,直接影响工程交付的可靠性。这一技术痛点凸显了组件化架构中二进制分发与依赖传递的深层次矛盾。为解决此问题,开发者需从构建生命周期和AAR文件结构入手, 阅读详情

在写工程的时候很多资源文件会放到Maven的Resource文件夹下。像Log4j这种配置文件,打包的时候我们不能将其拷贝到jar包中。怎么办呢?使用Maven的JAR插件吧。

讲JAR插件之前先说说Resource标签。大家应该都知道这个标签使用来拷贝资源文件的。那个directory是用来配置资源文件的位置的。它是基于工程目录的,如果你不放心可以在前满加入${basedir}占位符。坑的是下面的exclude,这个时候我发现使用跟directory一样的绝对路径去排除log4j.xml没能成功。怀疑这个可能是基于directory的相对路径(没有验证过)。
资源文件赢还有个target标签,代表的是资源输出到那个目录下。注意,这个时候是相对于target文件夹了。

像下面这样,资源文件就配置好了。

<resources>
    <resource>
      <directory>src/main/resources</directory>
      <targetPath>resources</targetPath>
      <!--<excludes>-->
        <!--<exclude>log4j.xml</exclude>-->
      <!--</excludes>-->
    </resource>
</resources>

在这里我只讲怎么将文件移除。比如在${basedir}/src/main/resource下的log4j.xml文件。在插件里只需要将按如下配置即可。

我只强调我被坑的地方。那就是exclude标签。这个exclude是相对于target文件夹的。比如你刚刚配置resource的时候设置target是outResource的话,相应的,下面的exclude也应该改成outResource/log4j.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <configuration>
      <excludes>
        <exclude>log4j.xml</exclude>
      </excludes>
    </configuration>
</plugin>

这两个路径都是相对于target来说的,在Maven的官方文档中么有发现相关的说明(或许是我没注意)。所以在这里有必要写明一下,欢迎交流指正。

汇川伺服驱动器参数优化实战指南 本文详细介绍了汇川伺服驱动器参数优化的实战技巧,涵盖控制模式选择、电子齿轮比调整、刚性匹配与振动抑制等关键内容。通过实际案例和实用技巧,帮助工程师快速掌握伺服驱动器参数调校方法,提升设备运行精度和稳定性。特别针对高精度定位和高速响应场景提供了专业指导。 阅读详情

相关推荐

从零到一:FAST_LIO与FAST_LIO2算法环境搭建与实战评测

本文详细介绍了FAST_LIO与FAST_LIO2算法的环境搭建与实战评测,包括算法原理、环境配置避坑指南、源码编译技巧及性能对比。FAST_LIO2凭借ikd-tree数据结构在动态环境中表现优异,处理速度提升至15ms,内存占用降低40%。文章还提供了常见问题排查和进阶优化技巧,助力开发者高效实现SLAM应用。

weixin_29271053的博客 470

SpringBoot项目里用EasyExcel填报表,打包后模板文件损坏?一个Maven插件配置就搞定

本文深入解析了SpringBoot项目中使用EasyExcel进行模版数据填充时,打包后Excel模板损坏的问题。通过分析Maven资源过滤机制,提供了三种解决方案:基础方案排除特定文件类型过滤、增强方案结合资源目录排除以及高级方案自定义资源处理,帮助开发者彻底解决'Create workbook failure'等错误。

weixin_30904593的博客 333

IEC104协议下的文件传输与软件升级的技术细节与操作流程

本文深入探讨IEC104协议下的文件传输过程和软件升级机制,揭示其背后的技术细节和操作流程。

2401_86189088的博客 2524

Maven打包pom里面配置exclude 排除掉环境相关的配置文件

Maven打包pom里面配置exclude 排除掉环境相关的配置文件, resources excludes 关于Maven resource配制中include与exclude的关系 <include>与<exclude>是用来圈定和排除某一文件目录下的文件是否是工程资源的。如果<include>与<exclude>划定的范围存在冲突时,以&...

xiaoyue0926的专栏 1万+

大模型辅助意图识别,更懂你的客户洞察平台

通过大量的学习和训练,大模型不仅具备庞大的知识库,更掌握着丰富的语言模式和语义规则,能够精准地理解每一段对话的含义,为每一通对话进行全面、准确的标注。主要来自客户的行为信息,将客户与机构的重要时刻以时间轴的方式呈现出来,掌握客户生命周期的完整脉络,识别一些容易被忽略的重要营销MOT(Moment Of Truth,关键时刻研究)机会,提示理财经理跟进处理。将客户的历史交易数据和埋点系统采集的客户行为数据结合起来,辅以部分内容资讯的偏好探测,综合分析和预测客户在各个维度的喜好程度,实现千人千面的客户推送。

Dezhuzhineng的博客 2159

LPDDR6与LPDDR5 State Diagram技术探讨

LPDDR6与LPDDR5 State Diagram技术探讨

zilan23的博客 1176

Maven学习

Maven提供了三个隐式的变量可以用来访问环境变量、POM信息、Maven Settings。env变量,暴露了你操作系统或者shell的环境变量。如在Maven POM中一个对env.PATH的引用将会被{env.PATH}的引用将会被env.PATH的引用将会被{PATH}环境变量替换,在Windows中为%PATH%.project变量暴露了POM。可以使用点标记(.)的路径来引用POM元素的值。例如: 当你使用 查看时,你会看到常见的还有: settings settings变量暴露了Maven s

午后阳光 1876

高级图像增强——模拟雨天,雾,雪,阳光,阴影,运动模糊,畸变等14种效果,同步扩充标签文件

本文提供了一些高级的,特殊的图像增强方法,具体包括、光。

Limiiiing的博客 1308

Maven resources的include和exclude

Maven resources plugin支持明确声明<directory>指定的资源目录中哪些资源需要处理,哪些资源可以不被处理。<include>指明需要包括的资源,位于src/my-resources中的任何txt和rtf文件(包括子目录)都会被处理 <project> ... <name>My Resources Plugin Practice Project

扶摇升的IT博客 1万+

地下管网巡检机器人:基于YOLOv8与UI界面的智能化系统设计与实现

通过YOLOv8模型的目标检测功能结合实时视频流,我们能够实现对地下管网巡检机器人的智能化控制。系统通过图像识别技术帮助巡检人员快速识别管道中的各种缺陷和障碍物,从而提高巡检效率和准确性。未来,我们可以继续优化模型,增加更多的目标类别,并通过强化学习等方法提高机器人的自主巡检能力。此外,随着硬件技术的发展,未来的巡检机器人可能会具备更强的感知能力和更高的智能水平。

YOLO 530

国产服务器系统的PXE无人值守自动化安装部署——以银河麒麟、统信UOS、OpenEuler这三类服务器系统为例

本文详细介绍了三种国产服务器系统(银河麒麟、统信UOS、OpenEuler)的PXE无人值守自动化安装方法。主要内容包括:1)从系统ISO镜像中提取内核文件和根系统文件;2)编写GRUB菜单引导文件;3)配置自动应答文件实现自动化安装;4)重启PXE服务并测试安装过程。文章特别强调了硬盘容量需≥100GB、UEFI模式设置等注意事项,并提供了root密码重置方法。对于x86架构Windows上模拟ARM架构系统安装也给出了具体命令。通过完整的配置流程,可实现国产服务器系统的快速批量部署。

提供C#相关开发 、云计算、运维测试、网络安全相关技术分享与服务,有意向可联系。 1467

Java工程maven中排包exclude的操作

在开发项目时依赖了新的jar包,结果工程启动时报错了,此时应该是包依赖冲突的问题。

benben044的专栏 2099

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

maven移除全部依赖写法 exclude *

例如要移除lazada-item-health-center-ns-client的所有依赖

qq_44086060的博客 20万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

maven配置pom将不在resource下的配置文件打进包内

maven配置pom将非resource下的文件打进包内

blood_Z的博客 2424

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

maven 打包项目排除一些资源文件和jar

resource 标签、includes 标签、excludes 标签 <build> <resources> <!-- 防止启动类无法扫描.xml配置文件 --> <resource> <directory>src/main/java</directory> <includes>

huofuman960209的博客 1933

Maven的POM文件里,build/resources里include和exclude

超·蛋·疼 同事的工程里有*.dat文件要打包到最后的JAR包里,但POM文件里resources的配置没放*.dat文件通过。于是加了一条include放过它,但那里是配置在true下面的。 结果杯具了,那些*.dat文件在被Maven打包的时候被“转码”了,其中的一些数据就变成了ASCII问号(0x3F)。 [url]http://maven.apache.org/plugi...

Script Ahead, Code Behind 2029

maven打包排除resources文件夹下的文件

&lt;!--排除resources文件夹--&gt; &lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&gt;maven-jar-plugin&lt;/artifactId&gt; &lt;version&gt;3.0.2&lt;/version&

weixin_42608550的博客 1万+

spring boot maven打包时排除资源目录

因为最近想弄一个自己的脚手架项目,顺带着想学一下先进的前端框架Vue.js,所以在springboot中整合了Vue.js。我把Vue.js 的前端项目放在了resources/webapp目录下,当Vue.js build出结果到resources/statics下以后,这个webapp作为源码目录是不应该被打包到最后部署的jar包中的。于是想把这个resource/webapp目录给屏蔽掉。我...

Loser 2万+

Maven基础:常用技巧总结(1)

这篇文章总结一下Maven在使用中的常用的基础知识技巧。

知行合一 止于至善 662

Maven打包排除某个资源或者目录

最近在spark streaming本地调试的时候,引入了一些资源文件,打包的时候需要给排除掉。所以就考虑使用maven的方式 详细参考官方文档:https://maven.apache.org/plugins/maven-jar-plugin/examples/include-exclude.html 排除某个资源文件 <plugin> <g...

weixin_30402085的博客 313

maven resources与配置分离

maven的resources默认使用的插件是maven-resources-plugin,主要是用于执行资源文件拷贝。我们先看一个示例,然后在一一介绍。

trayvontang的博客 1070

Unity Android打包进阶:深度解析Gradle模板配置与疑难问题解决

在移动应用开发中,构建工具是连接代码与可执行应用的关键桥梁。Gradle作为Android生态的主流构建系统,通过声明式脚本管理依赖、编译和打包流程。其核心价值在于提供了灵活的项目配置能力,能够统一管理多模块依赖关系,并支持自定义构建任务。在实际工程实践中,尤其是在Unity引擎开发Android应用时,Gradle模板(mainTemplate.gradle和launcherTemplate.gradle)成为解决复杂SDK集成、依赖冲突和构建优化的核心技术手段。通过配置这些模板,开发者可以精准控制仓库源

weixin_33928137的博客 739

Unity安卓打包资源冲突:Gradle构建原理与packagingOptions实战解决方案

在移动应用开发中,Gradle作为Android官方的项目构建工具,负责管理依赖、编译代码和打包资源。其核心原理是通过解析build.gradle脚本,协调多模块间的资源合并与冲突处理。在Unity与Android原生混合开发场景下,当游戏资源与第三方SDK资源发生命名冲突时,Gradle默认的资源合并机制会抛出“Duplicate resources”错误,导致构建失败。这种资源冲突问题常见于集成广告、支付等多SDK的复杂项目中,直接影响应用打包流程。通过深入理解Gradle的packagingOptio

weixin_30443731的博客 333

Maven构建失败排查指南:从依赖冲突到环境配置的全面解析

在Java项目构建中,依赖管理和构建工具是核心技术基础。Maven作为主流的项目管理和构建自动化工具,其核心原理是通过坐标机制管理依赖,并基于生命周期模型执行插件目标。理解Maven的依赖解析机制和插件执行流程,对于保障项目构建的稳定性和可重复性具有重要技术价值。在实际开发场景中,依赖冲突、网络仓库问题和环境配置差异是导致构建失败的常见原因,这些问题直接影响开发效率和团队协作。本文聚焦于Maven构建过程中常见的“Failed to execute goal”错误,系统分析其背后的依赖冲突和插件执行问题,提

weixin_30565327的博客 330

Maven打jar包剔除resources下的文件

粘贴代码到pom.xml文件 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar...

weixin_42179746的博客 2883

Unity安卓打包:解决Gradle依赖与资源冲突的实战指南

在Android应用开发中,Gradle作为核心构建工具,负责管理项目依赖、编译代码和打包资源。其工作原理是通过解析build.gradle脚本,自动化处理复杂的构建流程,从而提升开发效率。对于Unity开发者而言,理解Gradle构建流程的技术价值在于能够突破引擎封装,直接掌控原生层配置,这是实现稳定打包、深度集成第三方SDK和优化应用性能的关键。尤其在集成广告、支付等SDK时,常会遇到依赖版本冲突、资源文件重复等典型问题,导致构建失败。本文聚焦Unity安卓打包中最常见的Gradle依赖冲突与资源合并问

anvt77205的博客 359
上一篇: Java路径与资源路径
下一篇: Cygwin SSH登陆后无颜色
LuoYuWS
博客等级 码龄11年 1粉丝 15原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值