web-dev-qa-db-ja.com

他のプラットフォームで実行している場合でも、Mavenアセンブリプラグインを使用してLinuxファイルのアクセス許可を設定しますか?

同様の質問: タスクが他のプラットフォームで使用されている場合でも、AntのtarタスクはLinuxファイルのアクセス許可を設定できますか?

'project'記述子でMaven2 Assemblyプラグインを使用する場合、たとえばインクルードされたbuild.shスクリプトファイルに対してシェルスクリプトのアクセス許可を実行可能ファイルに設定する方法はありますか?

例:

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

これにより、3つのファイルが作成されます

  • -project.tar.bz2
  • -project.tar.gz
  • -プロジェクト-Zip

そして、tarファイルにあるすべての* .shファイルのファイルパーミッションを「実行可能」に設定したいと思います。

19
mjn

これは、Mavenアセンブリプラグインで使用可能なfileModeパラメーターを使用して実行できます アセンブリ記述子 。例えば

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

コメントで、ディレクトリに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>
1
doryDev