创建临时 zip 工件的 Maven 最佳实践

2024-01-08

假设我需要管理一个包含任意文件夹/文件结构(汇总为 zip 存档)的工件。我不清楚如何在 Maven 中以最适合“Maven 方式”的方式完成此任务。

我知道没有“zip”包装类型。这是否意味着 Maven 中没有通用的生命周期来简单地获取资源文件夹中的内容,将其压缩,然后将其安装/部署到我的存储库?

我正在寻找选项,评估每个选项如何满足我遵循行家方式的要求,因为我不希望遭受偏离黄金道路的明显惩罚。 。 。


决定您将使用什么分类器zip文件,为了便于论证,我们假设它是sample.

在您的项目中创建文件assembly/sample.xml

Fill in assembly/sample.xml像这样的东西:

<?xml version="1.0" encoding="UTF-8"?>
<assembly
  xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
    http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2
      http://maven.apache.org/xsd/assembly-1.1.2.xsd"
>
  <id>sample</id>
  <formats>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <outputDirectory>/</outputDirectory>
      <directory>some/directory/in/your/project</directory>
    </fileSet>
  </fileSets>
  <!-- use this section if you want to package dependencies -->
  <dependencySets>
    <dependencySet>
      <outputDirectory>lib</outputDirectory>
      <excludes>
        <exclude>*:pom</exclude>
      </excludes>
      <useStrictFiltering>true</useStrictFiltering>
      <useProjectArtifact>false</useProjectArtifact>
      <scope>runtime</scope>
    </dependencySet>
  </dependencySets>
</assembly>

将其添加到您的 pom 中build section

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <executions>
          <execution>
            <id>create-distribution</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <descriptors>
                <descriptor>assembly/sample.xml</descriptor>
              </descriptors>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

因此它应该创建并安装you-project-name-VERSION-sample.zip.

我建议您阅读 Sonatype 的 Maven 书中有关程序集的章节:https://books.sonatype.com/mvnref-book/reference/assemblies.html https://books.sonatype.com/mvnref-book/reference/assemblies.html

另外,请阅读汇编格式规范:http://maven.apache.org/plugins/maven- assembly-plugin/ assembly.html http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

创建临时 zip 工件的 Maven 最佳实践 的相关文章

随机推荐

  • JSF MVC 框架中的 MVC 是什么组件?

    JSF MVC框架中谁是模型 视图和控制器 这取决于观点 双关语 在总体架构图中 您自己的 JSF 代码是V M 业务领域 服务层 例如EJB JPA DAO V 您的 JSF 代码 C FacesServlet 在开发人员图中 架构V又可
  • 为什么 ASCII 表中大写字母位于小写字母之前?

    在我的一次面试中 面试官问我为什么ASCII表中大写字母在小写字母之前 我在google com上搜索但没有找到任何结果 有人能给我答案吗 多谢 我只是猜测 但我想这是因为最早的字符集根本没有小写字母 Baudot 电报码只有 5 位 CD
  • 从图像文件夹加载数组 - xcode

    我在将图像从文件加载到数组中时遇到一些问题 我使用了我在这里找到的问题的组合 但我没有想法 我对 Objective C 很陌生 对其余的都生疏了 我的 viewDidLoad 只是调用我的 showPics 方法 并且为了测试目的 我让
  • 如何在map函数中使用useEffect?

    我在 Firebase 中有两个表 Vouchers 和 ClaimedVouchers 我正在尝试显示未出现在 ClaimedVouchers 表中的优惠券 因此 我有一个查询获取所有优惠券 然后另一个查询检查它们是否已被认领 如果已认领
  • docker数据量与挂载的主机目录

    我们可以在docker中拥有一个数据卷 docker run v path to data in container name test container debian docker inspect test container Moun
  • 如何结合 constexpr 和矢量化代码?

    我正在为 x64 和 neon 开发 C 内在包装器 我希望我的函数是 constexpr 我的动机类似于Constexpr 和 SSE 内在函数 https stackoverflow com questions 51880079 con
  • 如何让 foo.somedomain.com 由 appengine 上的 myapp.appspot.com/foo 处理

    这就是我想要实现的目标 http foo somedomain com http foo somedomain com被处理http myapp appspot com foo http myapp appspot com foo 谷歌应用
  • Python 值错误:没有足够的值来解压

    代码中出现以下错误 不确定这意味着什么或我做错了什么 只是尝试将三个列表值初始化为空集合 nba nfl mlb ValueError not enough values to unpack expected 3 got 0 问题是 左侧值
  • Nokogiri 支持哪个版本的 xpath?

    我找不到 Nokogiri 支持的 xpath 版本的官方声明 有人可以帮我吗 事实上 我想提取一些具有以指定子字符串开头的属性的元素 例如 我想获得所有Book元素具有category属性以字符开头C 如何使用 nokogiri 做到这一
  • 确定 R 中的嵌套级别?

    有没有一种简单的方法 即函数 来确定列表中的嵌套级别 我知道有str可以用来获取此信息 但有没有什么东西可以简单地返回结果呢 我可以使用这样的函数来获取所有级别的名称 递归 吗 一个小的递归函数可以为你做到这一点 depth lt func
  • 找不到已连接的设备。模拟器启动失败:无法通过提供的索引或标识符解析指定的连接设备。

    我正在学习 NativeScript 并且 跑步时tns platform add android我收到以下错误 我按照这个步骤 以管理员身份运行命令提示符 powershell NoProfile ExecutionPolicy unre
  • 如何在 React Redux 应用程序中使用装饰器?

    我正在使用 React Redux 创建简单的应用程序 我想使用装饰器在我的组件中注入一些方法 我在其他项目中看到了类似的代码 import React Component from react import connect from re
  • 新自我与新静态

    我正在将 PHP 5 3 库转换为在 PHP 5 2 上工作 阻碍我的主要事情是使用后期静态绑定 例如return new static options 如果我将其转换为return new self options 我会得到相同的结果吗
  • 为什么 FingerTrees 没有得到足够的使用来实现稳定的实现?

    前段时间 我遇到了关于 FingerTrees 的文章 http scienceblogs com goodmath 2010 04 finger trees done right i hope php 也可以看看附带的堆栈溢出问题 htt
  • peewee.OperationalError:仅更新插入 150 行 * 8 列时 SQL 变量太多

    下面的例子 在我的机器上 设置range 150 导致错误 同时range 100 才不是 from peewee import database SqliteDatabase None class Base Model class Met
  • WebBrowser IFrame 访问导致未经授权的访问?

    当我尝试访问此内容时 var anchors webBrowser1 Document Window Frames 0 Document GetElementsByTagName a 我收到未经授权的访问异常 到底是怎么回事 我可以在抛出异
  • 将多个 Excel 文件/工作表导入 SQL 表

    我有大约 100 个 xlsx 文件 每个文件都有 1 7 张 每个文件和工作表都具有与我想要将所有内容导入到的表相同的列 我可以成功地使用它 SELECT FROM OPENROWSET Microsoft ACE OLEDB 12 0
  • OpenCV 与 JavaCV 或仅 OpenCV 使用 java API

    我是 OpenCV 库的新手 我想使用 openCV 的 Java API 我在网站上阅读了有关如何安装 openCV 并将其用作 Eclipse 中的库的说明 现在让我困惑的是 因为我想用 Java 编程 我应该使用 JavaCv 吗 或
  • 黑莓 Facebook NoClassDefFoundError

    我可能做了一些愚蠢的事情 但我访问 BB Facebook 功能的尝试失败了 这是代码 直接取自提供的 FB 示例代码 String NEXT URL http www facebook com connect login success
  • 创建临时 zip 工件的 Maven 最佳实践

    假设我需要管理一个包含任意文件夹 文件结构 汇总为 zip 存档 的工件 我不清楚如何在 Maven 中以最适合 Maven 方式 的方式完成此任务 我知道没有 zip 包装类型 这是否意味着 Maven 中没有通用的生命周期来简单地获取资