19

类似的问题:Ant 的 tar 任务即使在其他平台上使用也可以设置 Linux 文件权限吗?

如果我使用带有“项目”描述符的 Maven 2 程序集插件,有没有办法将 shell 脚本权限设置为可执行,例如包含的 build.sh 脚本文件?

例子:

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>project</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>

这将创建三个文件

  • -project.tar.bz2
  • -project.tar.gz
  • -项目-zip

我想将 tar 文件中的所有 *.sh 文件的文件权限设置为“可执行文件”。

4

2 回答 2

51

这可以使用fileModeMaven 程序集插件程序集描述符中可用的参数来完成。例如

<assembly>
    ...
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/bin</directory>
            <outputDirectory>/bin</outputDirectory>
            <includes>
                <include>*.sh</include>
            </includes>
            <fileMode>0755</fileMode>
        </fileSet>
        ...
    </fileSets>
    ...
</assembly>
于 2011-01-18T02:37:57.720 回答
4

在评论中询问如何为目录设置权限,以便它们最终不会获得d---------权限。答案很简单——使用directoryMode

<assembly>
    ...
    <fileSets>
        <fileSet>
            <directory>${project.build.directory}/bin</directory>
            <outputDirectory>/bin</outputDirectory>
            <includes>
                <include>*.sh</include>
            </includes>
            <fileMode>0755</fileMode>
            <directoryMode>0755</directoryMode>
        </fileSet>
        ...
    </fileSets>
    ...
</assembly>
于 2019-03-29T11:45:24.197 回答