Similar question: Can Ant's tar task set a Linux file permission even when the task is used on other platforms?
If I use Maven 2 assembly plugin with the 'project' descriptor, is there a way to set shell script permissions to executable for example for included build.sh script files?
Example:
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
<configuration>
<descriptorRefs>
<descriptorRef>project</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
This will create three files
And I would like to set the file permissions for all *.sh files which are in the tar files to 'executable'.
This can be done using the fileMode
parameter available in Maven Assembly Plugin assembly descriptor. For instance
<assembly>
...
<fileSets>
<fileSet>
<directory>${project.build.directory}/bin</directory>
<outputDirectory>/bin</outputDirectory>
<includes>
<include>*.sh</include>
</includes>
<fileMode>0755</fileMode>
</fileSet>
...
</fileSets>
...
</assembly>
It was asked in comments how to set permisions for directories, so that they don't end up with d---------
permissions. The answer is pretty straightforward - use 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>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With