是否可以重命名带有依赖项的 Maven jar?

2024-03-09

我目前正在使用 jar-with-dependencies 程序集来创建这样的 jar。不过我的jar名字有点长。

由于 AS400 上的 RPG 程序正在使用此 jar,因此我想缩短它以使这些开发人员的生活更轻松一些。但是,除了手动之外,我还没有找到一种方法来将罐子从通常的名称中重命名project-name-version-classifier-jar-with-dependencies.jar。我想要类似的东西project-name-version-classifier-full.jar

无论如何,有没有办法在基本上不复制 jar-with-dependations 程序集描述符并调用它完整的情况下执行此操作?

此外,我想继续将没有组装类路径的 jar 存储在存储库中。

我需要两件文物。带有我的分类器的罐子保存了构建所在的区域。具有所有依赖项的 jar,其中还包括区域。

project-name-version-region-full.jar and project-name-version-region.jar应存储在存储库中。在第一个示例中,分类器是满区域的,在第二个示例中,分类器是区域的。后者正在发挥作用。


您可以指定最终名称属性为 jar 指定您想要的名称,并指定附加程序集 ID应该为 false 以避免“jar-with-dependencies”后缀。

下面的配置将输出一个名为“test.jar”的jar

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.2-beta-4</version>
  <executions>
    <execution>
      <id>jar-with-dependencies</id>
      <phase>package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
        <finalName>test</finalName>
        <appendAssemblyId>false</appendAssemblyId>
      </configuration>
    </execution>
  </executions>
</plugin>

更新:根据您的评论,使用内置描述符将不起作用。我相信这是由于最新版本的程序集插件中的一个错误 - 他们删除了对分类器的支持,但如果您使用内置描述符,则 id 是固定的,因此您最终会得到一个大而愚蠢的名称。

作为解决方法,您可以复制所使用的程序集描述符带有依赖项的 jar http://maven.apache.org/plugins/maven-assembly-plugin/descriptor-refs.html#jar-with-dependencies描述符并修改id。

此示例将导致程序集 id 被附加到 FinalName,因此如果您需要名称为区域完整.jar,您可以将 FinalName 指定为region程序集 ID 为full。这将在目标中生成一个名为region-full.jar的文件,但请注意,它仍然会作为附加工件安装到Maven存储库中full用作分类器。只要此 id 与其他程序集的 id 不同,就不应该发生冲突。

pom 配置看起来像这样。

<plugin>
  <artifactId>maven-assembly-plugin</artifactId>
  <version>2.2-beta-4</version>
  <executions>
    <execution>
      <id>jar-with-dependencies</id>
      <phase>prepare-package</phase>
      <goals>
        <goal>single</goal>
      </goals>
      <configuration>
        <descriptors>
          <descriptor>src/main/assembly/jar-assembly.xml</descriptor>
        </descriptors>
        <finalName>region</finalName>
      </configuration>
    </execution>
  </executions>
</plugin>

src/main/ assembly 中的 jar- assembly.xml 如下所示:

<assembly>
  <id>full</id>
  <formats>
    <format>jar</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <unpack>true</unpack>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <directory>${project.build.outputDirectory}</directory>
    </fileSet>
  </fileSets>
</assembly>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以重命名带有依赖项的 Maven jar? 的相关文章

随机推荐

  • 如何使用批量更改壁纸

    我需要制作一个批处理文件 将壁纸更改为与bat文件位于同一位置的图片 我当前有以下代码 reg add HKCU Control Panel Desktop v Wallpaper f t REG SZ d c images wallpap
  • 哪一个更快? List.contains() 或 Map.containsKey()

    我正在编写一个算法 在其中寻找成对的值 这些值加在一起时会产生我正在寻找的另一个值 我发现使用Map将使我的算法速度从 O n 开始 后来我意识到我并没有真正使用我的Map so a List就足够了 我在谷歌上进行了强力搜索 但在我的问题
  • 如何在Sqlite3中将数组存储在一列中?

    有没有办法将整数数组存储在表的一列中 我想要这样的o p ident value count 563 0 10 0 0 1 100 2 200 3 300 4 400 5 500 6 我已经通过 postgres 实现了这
  • 为什么 SSL 握手会出现“无法生成 DH 密钥对”异常?

    当我与某些 IRC 服务器 但不是其他服务器 可能是由于服务器的首选加密方法 建立 SSL 连接时 出现以下异常 Caused by java lang RuntimeException Could not generate DH keyp
  • 使用 CSS 为黑色图标赋予另一种颜色

    我看到一些应用程序尽管包含黑色图标 但有些应用程序如何使用 CSS 将图标转换为不同的颜色 我似乎无法重复这个过程 这是我的 back css 文件 dashboard buttons a width 80px height 80px bo
  • Solr 搜索查询返回全头异常

    我正在 C 应用程序中调用托管在其他计算机上的远程 solr 搜索 现在 由于我的查询长度变得太大 因此搜索引擎返回全头错误 我无法减少查询长度 所以我只是想知道我可以提出同样的邮寄请求吗 我该怎么做这个 请建议我 谢谢 看起来您遇到了 j
  • 在回调中使用yield?

    我有一个函数y 这应该会产生一些记录 然而 该函数在回调中获取记录 并将其传递给另一个函数d 访问数据 d 不返回或产生任何东西 如果其他功能 这种模式是否可能d 接受回调被认为是黑匣子 替代设计是什么 function y d funct
  • 单元测试、NUnit 还是 Visual Studio? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在使用 Visual studio 有时是 resharper 来运行我的单元测试 我听说过 NUnit 但我对它了解不多 我应该关心它吗
  • 在 kubernetes pod 中获取日志的选项

    kubernetes pod 中的开发人员日志很少 获取日志供开发人员查看的最佳方法是什么 我们可以使用什么特定的工具 我可以选择graylog 但不确定是否可以对其进行定制以使开发人员登录到其中 最基本的方法是简单地使用kubectl l
  • Python:连接(或克隆)一个 numpy 数组 N 次

    我想通过克隆 Mx1 ndarray N 次来创建 MxN numpy 数组 有没有一种有效的 pythonic 方法来代替循环 顺便说一句 以下方法对我不起作用 X 是我的 Mx1 数组 numpy concatenate X numpy
  • 文件读取:feof() 用于二进制文件

    我正在读取一个二进制文件 当它到达终点时 看来它是由 feof 函数终止的 是因为二进制文件没有EOF字符吗 如果是这样我该如何解决它 目前我的代码正在使用 while 循环 while feof f 当它到达文件末尾位置 5526900
  • 为什么 lambda 的大小为 1 个字节?

    我正在使用 C 中的一些 lambda 表达式的内存 但我对它们的大小有点困惑 这是我的测试代码 include
  • 如何将 MemoryStream 中的 PDF 发送到 .Net 中的打印机?

    我使用 iTextSharp 在内存中创建了一个 PDF 并将其包含在 MemoryStream 中 我现在需要将 MemoryStream PDF 转换为打印机可以理解的内容 我过去曾使用报表服务器将页面呈现为打印机格式 但我无法将其用于
  • 从PowerShell 5.1到7.2.5 Get-Service -ComputerName不再存在,那么我如何获取计算机名称?

    我在用着Get Service显示过滤列表 它在 5 1 中运行良好 这就是我在 5 1 中的工作方式 Get Service DisplayName displayName ComputerName computers Sort Obje
  • 没有“提醒”的通知

    我正在尝试创建一个具有高优先级的通知 聊天应用程序 但我的客户要求它不会有 抬头 视图 我尝试过创建一个空布局RemoteViews设置为Notification headsUpContentView但还是什么都没有 这是我尝试过的 Int
  • 背景附件:修复了 translateX(0) 的断裂问题

    我有一个具有固定背景的滚动元素 my element background url foo png no repeat right bottom background attachment fixed 效果很好 通常情况下 但是 如果我对其
  • asp.net mvc 4通过按钮从控制器调用方法

    在我的控制器中 我有类 AccountController 并且在我有这个方法 HttpPost ValidateAntiForgeryToken public ActionResult LogOff WebSecurity Logout
  • Elasticsearch with Tire:具有多个单词的edgeNgram

    假设我有 5 部影片 无太阳 Sansa 这也是吗 索尔 古德 唯一的幸存者 我想实现一个具有以下预期行为的自动完成搜索字段 Sans gt 无太阳 珊莎 无忧无虑 gt 无太阳 所以 gt 这也是 索尔 古德 唯一幸存者 也是 gt 这也
  • ASP.NET MVC 路由和经典 ASP 主页(VBScript,不是 Web 表单)可以很好地协同工作吗?

    我们网站的根目录中有一个经典的 VBScript default asp 页面 这是一个沉重的遗留页面 现在无法选择对其进行转换 我们还有一个新的 ASP NET MVC 2 应用程序 我们希望将其托管在同一站点上 实际上 一切都配合得很好
  • 是否可以重命名带有依赖项的 Maven jar?

    我目前正在使用 jar with dependencies 程序集来创建这样的 jar 不过我的jar名字有点长 由于 AS400 上的 RPG 程序正在使用此 jar 因此我想缩短它以使这些开发人员的生活更轻松一些 但是 除了手动之外 我