【问题标题】:maven-assembly-plugin fileset permissions changed?maven-assembly-plugin 文件集权限已更改?
【发布时间】:2013-07-29 17:41:39
【问题描述】:

我有 Maven 3.0.4,并且正在尝试使用其他几个工件进行组装。使用 maven-assembly-plugin 时,如果我使用 a 它会在正确的位置解压缩工件内容,但会丢失文件的可执行权限(例如在 /bin 目录中)。我尝试将依赖项解压缩到 target/ (我看到权限仍然可以),然后使用将它们复制到程序集中,但同样,文件权限丢失了。如果我必须手动通过依赖项来确定哪些文件是可执行的,那就太糟糕了。

有人有办法解决这些明显的错误吗?是否甚至可以将临时目录中的文件直接复制到程序集的最终位置并保持权限?如果有,怎么做?

【问题讨论】:

  • 你需要展示你的pom吗?你的操作系统是什么?你到底遇到了什么错误?
  • 我想我很困惑。您的权限何时丢失?一旦你把它们打包存档?还是在此之前做一些复制?
  • 这是一个例子。我使用 /bin/a.sh 和权限 0755 创建了工件 A。我创建了想要包含 A 的工件 B。在 B 的 maven-assembly-plugin 中使用 标记会将 a.sh 更改为 0644。如果相反,我使用 maven-dependency-plugin 在 /target 下解压缩工件 A,解压缩时它具有正确的权限。如果我然后在程序集中使用 将解压缩的文件集复制到 B 中,它再次将 a.sh 更改为 0644。我想保留 B 中包含的 A 中所有内容的权限。

标签: maven maven-assembly-plugin fileset


【解决方案1】:

我终于找到了答案。作为正在构建程序集的子项目的父 pom 文件,几年前已经宣布了针对 maven-assembly-plugin 错误 MASSEMBLY-449 的解决方法。作为建议的解决方法的一部分,输入了一个块,默认文件模式为 644。当 maven 在 2.2 上并且 m-a-p 也在 2.2 上时,这又回来了。我们切换到 maven 3.0.4 并且 m-a-p 几个月前更新到 2.4。到那时,该错误已修复。显然,该修复意味着不再需要该解决方法,并且实际上干扰了执行位设置。当我删除块时,两者的所有执行权限和条目再次正确。

【讨论】:

    【解决方案2】:

    pom 在这里真的很有帮助。您是否在依赖集中使用<directoryMode> 和/或<fileMode>,例如:

    <dependencySet>
        <outputDirectory>someDir</outputDirectory>
        <outputFileNameMapping></outputFileNameMapping>
        <unpack>true</unpack>
        <useTransitiveDependencies>false</useTransitiveDependencies>
        <useProjectArtifact>false</useProjectArtifact>
        <useProjectAttachments>true</useProjectAttachments>
        <includes>
            <include>artifactA</include>
        </includes>
        <directoryMode>0755</directoryMode>
        <fileMode>0755</fileMode>
    </dependencySet>
    

    &lt;fileSet&gt; 具有相同的选项。

    【讨论】:

    • 今天有时间我会上传汇编文件代码和 pom 示例,但我只是想回复这个评论。我绝对不想使用 ,因为正在下载的工件有大量文件(例如,整个 activemq 安装),其中 0755 文件只有几个,不一定只在 /bin 中。基本上,我想要找到的是一个解决方案,其中 maven 只保留原始工件所具有的权限,而不是搞砸它们并强迫我自己手动查找每个文件并将其修复为原来的样子。
    • 请注意,您在某种程度上受底层操作系统的支配。例如,在 Unix 上,无论设置什么 umask 都会影响文件创建。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 2016-10-13
    • 2016-02-13
    • 2010-11-22
    相关资源
    最近更新 更多