使用一些 Maven 插件重命名 jar 内的文件

2024-01-11

我有一个由 maven-shade-plugin 构建的 jar。 它包含带有多个文件的 META-INF/services。 这些文件的名称错误(因为错误https://issues.apache.org/jira/browse/MSHADE-182 https://issues.apache.org/jira/browse/MSHADE-182)。 我想重命名这些文件。

使用 Maven 执行此操作的最简单方法是什么?


肮脏的黑客,但它对我有用

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <version>1.7</version>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>package</phase>
                    <configuration>
                        <target>
                            <echo message="unjar" />
                            <unzip src="${project.build.directory}/${artifactId}-${version}.jar" dest="${project.build.directory}/unpacked/" />
                            <echo message="rename service providers in META-INF/services" />
                            <move todir="${project.build.directory}/unpacked/META-INF/services" includeemptydirs="false">
                                <fileset dir="${project.build.directory}/unpacked/META-INF/services"/>
                                <mapper type="glob" from="*" to="${shade.package}.*"/>
                            </move>
                            <echo message="jar back" />
                            <jar destfile="${project.build.directory}/${artifactId}-${version}.jar" basedir="${project.build.directory}/unpacked" />
                        </target>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用一些 Maven 插件重命名 jar 内的文件 的相关文章

随机推荐

  • UISwitch,Mac 上有类似的东西吗?

    我相信你们大多数人都熟悉UISwitch on iOS 他们是否有任何现有项目试图实施类似的东西UISwitch适用于 macOS 和 AppKit 如果没有 从哪里开始制作呢 我经常看到它们并且能想到很多用途 我认为你应该使用NSChec
  • 如何在颤振中显示带有顶部和底部渐变阴影的图像?

    我正在研究颤振以显示具有顶部和底部渐变叠加的图像 图像顶部和底部的某些部分应显示阴影 就像被其他颜色 如灰色 覆盖一样 请找到我画的附图供参考 我已将 Container 与 CachedNetworkImage 一起使用 并尝试使用 Bo
  • 如何在摇动设备时刷新应用程序?

    我需要添加一个摇动功能来刷新我的 Android 应用程序 我找到的所有文档都涉及实施SensorListener 但 Eclipse 告诉我它已被弃用并建议SensorEventListener 任何人都可以指导我如何创建这个shake
  • 如何检查函数/方法采用哪些参数? [复制]

    这个问题在这里已经有答案了 为了保持我用 Python 构建的几个模块的一致性 我想做一些自动代码检查 为此 我想检查模块的函数以及函数所采用的参数 我可以使用 hasattr 来检查模块是否确实包含预期的功能 到目前为止 一切都很好 我现
  • 向量在着色器语言中如何相乘?

    Such as gl FragColor v1 v2 我真的不明白它是如何相乘的 似乎参考文献给出了向量乘法矩阵的解释 ps 类型v1 and v2都是vec4 The 操作员工作组件方面 http en wikibooks org wik
  • 使用 GET 请求发送 POST 数据是否有效?

    例如 使用 Curl 我可以在 GET 请求中 发布 数据 发送实体主体 这是有效的做法吗 我的意思是 RFC 规范没有禁止吗 有人有充分理由使用它吗 See RFC2616 超文本传输 协议 HTTP 1 1 http www faqs
  • AppDomains 和 GC 堆

    是否存在单个 GC 堆进程宽分区 使得每个应用程序域都可以访问特定分区 或者每个应用程序域都有单独的GC堆 我确定其他堆 例如 HF 堆 LF 堆 存根堆 句柄表等等 所有这些堆都是为每个应用程序域单独分配的吗 GC堆也单独分配吗 这可能是
  • .dSYM 文件是如何创建的?

    我正在与另一位开发人员一起开发一个应用程序 他们刚刚向在他们的计算机上构建的应用程序商店提交了一个版本 为了在我的机器上进行构建 属于同一个 git 提交 我必须更改我们在 XCode 项目中使用的库之一的路径 我对 XCode 项目文件所
  • 比较日期范围

    在 MySQL 中 如果我有一个日期范围列表 范围开始和范围结束 例如 10 06 1983 to 14 06 1983 15 07 1983 to 16 07 1983 18 07 1983 to 18 07 1983 我想检查另一个日期
  • 最简单的内联方法左填充字符串[重复]

    这个问题在这里已经有答案了 可能的重复 是否有 JavaScript 函数可以填充字符串以达到确定的长度 https stackoverflow com questions 2686855 is there a javascript fun
  • 寻找一个好的 C++ 库来解析 AMF3 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 使用阿姆达尔定律计算性能增益

    我对阿姆达尔定律来确定性能增益和串行应用程序部分感到困惑 但未能弄清楚这一点 已知的是以下内容 S N Speedup factor for N CPU s N Number of CPU s f The part of the progr
  • 使用 REST 服务上传文件

    我使用以下 REST 服务 来自本教程 https javatutorial net java file upload rest service 使用 jersey 多部分实现将文件从不同数量的客户端上传到我的 GlassFish 服务器
  • 使用 UIAppearance 设置 UITableView 的背景颜色

    我正在尝试普遍更改表格视图的背景颜色 它是 UINavigationController 和 TabBarController 应用程序的组合 我尝试将以下内容放入 AppDelegate applicationDidFinishLaunc
  • 是否有任何 EJB 迁移工具可用于将 EJB 2.1 迁移到 EJB 3.x

    最好的方法可能是手动完成 但在大型项目中 您需要一些工具来帮助您 正是这个想法促使我寻找一种工具 是否有任何 EJB 迁移工具可用于将 EJB 2 0 迁移到 3 x 它只开发了很短一段时间 但在一段时间内我们确实有一个 eclipse 插
  • 将 JPanel 保存为图像

    我正在开发一个应用程序 允许用户在图层中加载图像 用户可以在另一层上绘制一些图片并仅保存用户绘制的图像 这是我的代码 import java awt Dimension import java awt Graphics import jav
  • Nginx:stat() 失败(13:权限被拒绝)

    我使用默认配置 同时添加安装在我的 ubuntu 12 04 机器上的 nginx 的特定目录 server listen 80 listen for ipv4 this line is default and implied listen
  • 如何让Python除以-0.0和0.0分别得到-Inf和Inf?

    我遇到的情况是 除以 0 0 或 0 0 是合理的 我希望分别看到 Inf 和 Inf 作为结果 看起来Python很喜欢抛出一个 ZeroDivisionError float division by zero 在任一情况下 显然 我认为
  • 如何从Windows命令提示符修改Java控制面板选择(对应于deployment.properties文件)?

    如何从Windows命令提示符修改Java控制面板选择 对应于deployment properties文件 具体来说 我正在寻找可以影响更改的命令 Action for local applets 选择 在 Custom Security
  • 使用一些 Maven 插件重命名 jar 内的文件

    我有一个由 maven shade plugin 构建的 jar 它包含带有多个文件的 META INF services 这些文件的名称错误 因为错误https issues apache org jira browse MSHADE 1