Использовать Maven assembly plugin для установки разрешений файлов Linux даже при запуске на других платформах?


Аналогичный вопрос: Может ли задача Tar Ant установить разрешение файла Linux, даже если эта задача используется на других платформах?

Если я использую Maven 2 assembly plugin с дескриптором 'project', есть ли способ установить разрешения shell script на исполняемый файл, например, для included build.sh файлы сценариев?

Пример:

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

Это создаст три файла

  • -проект.тар.bz2, что
  • - проект.смола.gz
  • - project-zip

И Я хотелось бы установить права доступа для всех файлов*. sh, которые находятся в файлах tar, в "исполняемый файл".

1 18

1 ответ:

Это можно сделать с помощью параметра fileMode, доступного в модуле сборки Maven дескриптор сборки. Например

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