2012-01-25 7 views

risposta

7

L'unico modo per farlo è quello di elaborare il file con un altro plugin Maven come Antrun o Assembly dopo l'esecuzione AppAssembler.

Questo problema (vedere il collegamento seguente) è stato attivato nel tracker dei problemi del progetto AppAssembler ed è stato rifiutato come Won't Fix.

Problema: MAPPASM-54

2

penso che può essere impostato nel vostro assembly.xml, nel tag fileSet:

<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

Grazie, ma la tua risposta riguarda il plugin Assembly. Si prega di seguire il link nella domanda, vedrete che si tratta di un plugin diverso. –

+0

Scusaci Sasha, devo aver letto male la tua domanda. – maksimov

0

Dal Maven 3.0.3 tutti i plugin vengono eseguiti nell'ordine in cui sono nel vostro pom.xml. Quindi impostare il flag eseguibile in un modo indipendente dalla piattaforma è facile come usare il plugin maven-enforcer subito dopo il plugin di appassembler.

 <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> 
Problemi correlati