【问题标题】:Use Maven assembly plugin to set Linux file permissions for specific files使用 Maven 程序集插件为特定文件设置 Linux 文件权限
【发布时间】:2015-11-04 19:59:41
【问题描述】:

如何使用 Maven 程序集插件为特定文件设置文件权限?

以下工作正常,但它仅包含组装存档中的 specificShFile.sh

<assembly>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>specificShFile.sh</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
        ...
    </fileSets>
    ...
</assembly>

我想要的是所有文件都包含在 zip 中,但权限只能设置为该特定文件。

【问题讨论】:

  • 定义另一个fileSet 包括所有文件并排除您要为其设置权限的文件。

标签: java linux maven maven-3 maven-assembly-plugin


【解决方案1】:

你可以使用

 <fileSets>
          <fileSet>
            <useDefaultExcludes/>
            <outputDirectory/>
            <includes/>
            <excludes/>
            <fileMode/>
            <directoryMode/>
            <directory/>
            <lineEnding/>
            <filtered/>
          </fileSet>
  </fileSets>

这样更具体

<fileSets>
        <fileSet>
            <directory>src/main/java</directory>
            <outputDirectory>src/main/java</outputDirectory>
            <includes>
                <include>**</include>
            </includes>
            <useDefaultExcludes>true</useDefaultExcludes>
            <fileMode>0644</fileMode>
            <directoryMode>0755</directoryMode>
        </fileSet>
    </fileSets>

【讨论】:

  • @AndredeMiranda fileSets 是主要黑客
【解决方案2】:

非常感谢@SubOptimal 的提示,这是对我有用的解决方案:

<assembly>
    <formats>
        <format>zip</format>
    </formats>
    <fileSets>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
            <excludes>
                <exclude>specificShFile.sh</exclude>
            </excludes>
        </fileSet>
        <fileSet>
            <directory>${project.build.outputDirectory}</directory>
            <outputDirectory>/</outputDirectory>
            <includes>
                <include>specificShFile.sh</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
        ...
    </fileSets>
    ...
</assembly>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-10
    • 2017-01-28
    • 1970-01-01
    • 2012-12-30
    • 2019-07-09
    • 1970-01-01
    • 2013-09-09
    • 2021-09-28
    相关资源
    最近更新 更多