有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用Maven汇编插件设置Linux文件权限,即使在其他平台上运行?

类似问题:Can Ant's tar task set a Linux file permission even when the task is used on other platforms?

如果我使用带有“项目”描述符的Maven 2程序集插件,是否有一种方法可以将shell脚本权限设置为可执行文件(例如包含的构建)。sh脚本文件

例如:

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

这将创建三个文件

  • -项目。焦油bz2
  • -项目。焦油广州
  • -项目zip

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


共 (2) 个答案

  1. # 1 楼答案

    这可以通过Maven Assembly Plugin assembly descriptor中的fileMode参数来实现。比如说

    <assembly>
        ...
        <fileSets>
            <fileSet>
                <directory>${project.build.directory}/bin</directory>
                <outputDirectory>/bin</outputDirectory>
                <includes>
                    <include>*.sh</include>
                </includes>
                <fileMode>0755</fileMode>
            </fileSet>
            ...
        </fileSets>
        ...
    </assembly>
    
  2. # 2 楼答案

    有人在评论中问到如何设置目录的权限,这样它们就不会有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>