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も実行できるので、今回の例以外にもいろいろ使えそう。