LoginSignup
3

More than 5 years have passed since last update.

posted at

Mavenで生成したtargetフォルダ下の権限を変更する

src/main/resources下に置いているファイル達は、元の権限がどうであれtarget/classes下に吐き出されると644になってしまう。resources下に実行形式ファイルを置いている関係で、どうしてもclasses下のファイルを755にする必要があったので方法をメモってみる。

やり方としてはpomに以下のpluginを追加する。

pom.xml
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.6</version>
    <executions>
        <execution>
            <id>process-classes</id>
            <phase>process-classes</phase>
            <configuration>
                <target>
                    <chmod file="target/classes/chromedriver" perm="755"/>
                </target>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>

このプラグインはmavenの任意フェーズにantタスクを仕込めるもの。自分の環境ではtestフェーズより前でJUnitから利用するSeleniumドライバに実行権を与える必要があったので、process-classesでドライバの権限を755にしてる。

他にもmaven-assembly-pluginを使う方法もあるみたいだけど、こっちはうまく権限が変えられなかった。
How do I set directory permissions in maven output? - Stack Overflow

antrun pluginはもちろんbuild.xmlも実行できるので、今回の例以外にもいろいろ使えそう。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
3