2011-06-29 6 views

Odpowiedz

22

To wydaje się być bug in the Maven Resource Plugin

Jeśli używasz wtyczki Maven montażu, ci można skonfigurować tam file permissions.

Jeśli nie, możesz rozważyć obejście tego problemu. Możesz to zrobić przez Ant, wykonując coś takiego:

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

Dziękujemy! Bardzo szybka odpowiedź i obejście było wystarczająco dobre dla mnie teraz. –

+0

Nie ma za co! Należy pamiętać, że Mrówka była pierwszą rzeczą, jaka przyszła mi do głowy, gdy myślałam o zrobieniu tego "ręcznie". Prawdopodobnie istnieje również wiele innych opcji. – wjans

+0

wewnątrz działa, gdy "" jest używany zamiast "". za pomocą wtyczki antrun v1.7 –

3

Dodałem profil, który zostanie automatycznie aktywowany po uruchomieniu na komputerze z systemem Unix. Wykonuje in-line skrypt powłoki, aby adoptować uprawnienia do plików ze wszystkich plików w folderze rekurencyjnie do plików o tej samej nazwie w innym folderze (zobacz zmienne SRC i DST). Skrypt wymaga modelu /bin/sh oraz find, xargs i chmod, które powinny istnieć we wszystkich nowoczesnych systemach.

<profile> 
     <id>unix</id> 
     <activation> 
      <os> 
       <family>unix</family> 
      </os> 
     </activation> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.codehaus.mojo</groupId> 
        <artifactId>exec-maven-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>fix-resource-permissions</id> 
          <goals> 
           <goal>exec</goal> 
          </goals> 
          <phase>process-test-resources</phase> 
          <configuration> 
           <executable>/bin/sh</executable> 
           <arguments> 
            <argument>-c</argument> 
            <argument> 
             set -x 

             SRC="${basedir}/src/test/resources" 
             DST="${project.build.directory}/test-classes" 

             find "$$SRC" -printf "%P\0" | xargs --verbose -0 -I {} chmod --reference="$$SRC/{}" -f "$$DST/{}" 
            </argument> 
           </arguments> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 
+0

Ładne rozwiązanie !! –

Powiązane problemy