【问题标题】:How to preserve symlinks when unpacking tar using maven assembly plugin使用 maven 程序集插件解压 tar 时如何保留符号链接
【发布时间】:2013-07-18 02:00:21
【问题描述】:

我正在编写一个 maven 程序集描述符,其中一项任务是下载一个 tar 文件,在使用许多组件创建最终 tarball 之前解压缩它。

我不知道如何使用 maven 程序集插件从 tar 中保留符号链接。以前有人见过这个问题吗?

<assembly>
    <id>myassembly</id>
    <formats>
            <format>dir</format>
    </formats>
    <includeBaseDirectory>false</includeBaseDirectory>
    <dependencySets>
            <dependencySet>
                    <useProjectArtifact>false</useProjectArtifact>
                    <outputDirectory>.</outputDirectory>
                    <unpack>true</unpack>
            </dependencySet>
    </dependencySets>

</assembly>

【问题讨论】:

  • 不幸的是,不可能通过 maven-assembly-plugin 创建符号链接,也不知道有一个插件可以这样做。也许你可以通过使用 groovy 插件或 exec-maven-plugin 来解决这个问题?
  • 谢谢,试试看。

标签: maven maven-2 maven-3 maven-assembly-plugin


【解决方案1】:

现在一切都变得更好了。 我看到 maven 依赖插件和程序集插件都正确支持符号链接。使用以下版本和定义:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.10</version>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.4</version>
</plugin>

【讨论】:

  • 我可以确认 maven-dependency-plugin 2.10 可以很好地与 OSX 上的压缩符号链接一起使用。谢谢!
  • 我正在使用 2.6 版的 maven-assembly-pluging,但我的符号链接在解压时仍然损坏。有什么我想念的吗?
  • 如果这是解包可能是依赖插件版本。
  • 这对我也有用。如果您遇到任何符号链接不持久的问题,请确保它们在创建时、打包之前以及解包/解压缩时存在。
【解决方案2】:

momenet 上的任何 maven 插件都不支持保留符号链接。我通过使用 maven executor 插件解决了这个问题,该插件将为我执行 shell 脚本以及 tar 和 untar 工件。

【讨论】:

猜你喜欢
  • 2017-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 2017-03-13
  • 2012-07-10
相关资源
最近更新 更多