类似的问题:Can Ant's tar task set a Linux file permission even when the task is used on other platforms?
如果我将Maven 2程序集插件与'project'描述符一起使用,是否有办法将shell脚本权限设置为可执行文件,例如包含的build.sh脚本文件?
示例:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
<configuration>
<descriptorRefs>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
这将创建三个文件
我想将tar文件中所有* .sh文件的文件权限设置为'executable'。
答案 0 :(得分:44)
这可以使用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>
答案 1 :(得分:1)
有人在评论中询问如何为目录设置权限,以使它们不会获得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>