Maven 程序集插件。有什么方法可以直接从描述 rune 件中解压缩/解压缩存档,而不是依赖 antrun 插件?

标签 maven maven-assembly-plugin

我正在使用 maven 程序集插件版本 2.2.1 以自定义的专有格式构建包。 作为这个过程的一部分,我需要提取一堆外部文件(我所说的外部是指它们没有列为 Maven 依赖项,但它们是文件系统上的任意文件)。

你知道 maven assembly 是否能够做到这一点吗?我已经看过,显然,它能够在任意文件夹中提取一堆依赖项,但它无法提取外部存档。

最佳答案

使用 <unpack>true</unpack>在你的<dependencySet>是要走的路。

Maven 不支持外部存档。因此,您需要使用例如附加它们build-helper:attach-artifact然后你可以通过 <dependencySet> 引用它

更新

其中一条评论想知道如何避免将附加的 Artifact 安装到 Maven 存储库(本地/远程)中

解决方案是使用一个非传递依赖的虚拟模块。

我们依赖正在构建的程序集而不是用作传递依赖项。

所以你从一个虚拟模块开始,它看起来有点像

<project>
  ...
  <packaging>pom</packaging>
  ...
  <properties>
    <maven.deploy.skip>true</maven.deploy.skip>
    <maven.install.skip>true</maven.install.skip>
    <!-- or you could override the plugin configuration for a safer - but less quick - solution -->
  </properties>
  ...
</project>

该虚拟模块可以使用 build-helper:attach-artifacts 附加文件

您的程序集模块将只列出依赖项 <scope>provided</scope><optional>true</optional>作为防止成为传递依赖项的保护措施。 (如果程序集是安装程序包并且不会被其他 Maven 构建使用,则不需要。

好了,压缩内容将从一个存档流式传输到另一个存档,原始文件将不会复制到远程存储库...但是您始终需要构建破解构建组件的任何反应器中的模块。

关于Maven 程序集插件。有什么方法可以直接从描述 rune 件中解压缩/解压缩存档,而不是依赖 antrun 插件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705281/

相关文章:

java - 添加文件夹中的所有文件以使用 Maven 构建路径依赖关系

java - Maven问题更新和依赖项

java - 如何在 pom.xml 添加依赖项之类的文件夹

java - hudson 版本上的 Cargo maven 插件问题

Maven 程序集 : ear with additional resources in a zip

maven 程序集忽略父依赖项

maven程序集抛出stackoverflowerror

java - 有什么方法可以阻止 m2e 修改 eclipse .classpath 文件吗?

windows - 错误 OS=Windows 并且程序集描述符包含 *nix 特定的根相对引用(以斜杠开头)/

java - Maven 程序集或阴影插件 - 如何从 jar 中排除源?