2012-01-25 15 views
5

AppAssembler Maven pluginは私のために配布を生成する素晴らしい仕事をしています。最後の問題の1つは、生成されたシェルスクリプトに実行権限がないため、手動で設定する必要があることです。appassembler mavenプラグインは、生成されたスクリプトに対して "実行"権限を設定していません

誰もがそれらを自動的に設定するためのクリーンな方法を知ってい私は、Linux RedHatの

上のですか?

+0

2.0.0は、生成されたスクリプトに+ xビットを設定します。 –

答えて

7

これを行うための唯一の方法はAppAssemblerを実行した後AntrunまたはAssemblyのような別のMavenプラグインを使用してファイルを処理することです。

この問題(下記のリンクを参照)はAppAssemblerプロジェクトの問題追跡ツールで表示され、​​として拒否されました。

問題:すべてのプラグインは、彼らがあなたのpom.xmlにある順序で実行されているのMaven 3.0.3以来MAPPASM-54

2

私はそれが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> 
... 
+2

ありがとうございますが、あなたの答えはAssembly Pluginです。あなたはそれが別のプラグインについてですが表示されます、質問のリンクに従ってください。 –

+0

申し訳ありませんがSasha、私はあなたの質問を誤解しているはずです。 – maksimov

0

。したがって、プラットフォーム独立型の方法で実行可能フラグを設定することは、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> 
関連する問題