AppAssembler Maven pluginは私のために配布を生成する素晴らしい仕事をしています。最後の問題の1つは、生成されたシェルスクリプトに実行権限がないため、手動で設定する必要があることです。appassembler mavenプラグインは、生成されたスクリプトに対して "実行"権限を設定していません
誰もがそれらを自動的に設定するためのクリーンな方法を知ってい私は、Linux RedHatの
上のですか?
AppAssembler Maven pluginは私のために配布を生成する素晴らしい仕事をしています。最後の問題の1つは、生成されたシェルスクリプトに実行権限がないため、手動で設定する必要があることです。appassembler mavenプラグインは、生成されたスクリプトに対して "実行"権限を設定していません
誰もがそれらを自動的に設定するためのクリーンな方法を知ってい私は、Linux RedHatの
上のですか?
これを行うための唯一の方法はAppAssembler
を実行した後Antrun
またはAssembly
のような別のMavenプラグインを使用してファイルを処理することです。
この問題(下記のリンクを参照)はAppAssemblerプロジェクトの問題追跡ツールで表示され、として拒否されました。
問題:すべてのプラグインは、彼らがあなたのpom.xmlにある順序で実行されているのMaven 3.0.3以来MAPPASM-54
私はそれがfileSet
タグで、あなたのassembly.xml
に設定することができると思います。
<fileSets>
<fileSet>
<directory>src/resources/bin</directory>
<lineEnding>keep</lineEnding>
<useDefaultExcludes>true</useDefaultExcludes>
<outputDirectory>bin</outputDirectory>
<includes>
<include>*.bat</include>
<include>*.sh</include>
</includes>
<fileMode>744</fileMode>
</fileSet>
...
ありがとうございますが、あなたの答えはAssembly Pluginです。あなたはそれが別のプラグインについてですが表示されます、質問のリンクに従ってください。 –
申し訳ありませんがSasha、私はあなたの質問を誤解しているはずです。 – maksimov
。したがって、プラットフォーム独立型の方法で実行可能フラグを設定することは、appassemblerプラグインの直後にmaven-enforcer-pluginを使用するのと同じくらい簡単です。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>1.3.1</version>
<executions>
<execution>
<id>enforce-beanshell</id>
<phase>package</phase>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<evaluateBeanshell>
<condition>
import java.io.File;
print("set executable for file ${basedir}/dist/bin/mql");
new File("${basedir}/dist/bin/mql").setExecutable(true,false);
true;
</condition>
</evaluateBeanshell>
</rules>
<fail>false</fail>
</configuration>
</execution>
</executions>
</plugin>
2.0.0は、生成されたスクリプトに+ xビットを設定します。 –