2012-01-25 24 views
5

AppAssembler Maven plugin thực hiện một công việc tuyệt vời khi tạo phân phối cho tôi. Một vấn đề cuối cùng là kịch bản Shell được tạo ra không có quyền thực thi vì vậy tôi cần phải đặt chúng theo cách thủ công.appassembler maven plugin không đặt quyền "thực thi" trên tập lệnh được tạo

Tôi đang sử dụng Linux RedHat

Có ai biết cách tự động đặt chúng tự động không?

+0

2.0.0 đặt bit + x trên tập lệnh được tạo. –

Trả lời

7

Cách duy nhất để làm điều này là để xử lý các tập tin với một plugin maven như Antrun hoặc Assembly sau khi chạy AppAssembler.

Sự cố này (xem liên kết bên dưới) đã được đưa ra trên trình theo dõi vấn đề dự án AppAssembler và nó đã bị từ chối là Won't Fix.

Vấn đề: MAPPASM-54

2

Tôi nghĩ rằng nó có thể được thiết lập trong assembly.xml của bạn, trong thẻ 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

Cảm ơn nhưng câu trả lời của bạn là về Plugin hội. Hãy làm theo liên kết trong câu hỏi, bạn sẽ thấy nó là về một plugin khác nhau. –

+0

Xin lỗi Sasha, tôi hẳn đã hiểu sai câu hỏi của bạn. – maksimov

0

Kể từ Maven 3.0.3 tất cả các plugin được thực hiện theo thứ tự họ đang có trong pom.xml của bạn. Vì vậy, thiết lập cờ thực thi theo cách nền tảng độc lập dễ dàng như việc sử dụng trình bổ sung maven-executecer ngay sau plugin appassembler của bạn.

 <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> 
Các vấn đề liên quan