2012-01-25 30 views
5

tôi gặp sự cố. Tôi đang sử dụng antrun plugin cho maven và làm tiếp theo: tôi có thư mục và thư mục con (tôi không biết những gì được gọi là tiểu thư mục và số của họ) và tôi đang lưu trữ cho thư mục con này với tên của họ (tên thư mục con - "1 ", tên lưu trữ -" 1.acp ").Tính chất không thay đổi của Ant để biến đổi

   <tasks> 
        <taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar" /> 
        <taskdef resource="net/sf/antcontrib/antcontrib.properties" classpath="${settings.localRepository}/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar" /> 
        <for param="file"> 
         <path> 
          <dirset dir="src/main/bootstrap" includes="/*" /> 
         </path> 
         <sequential> 
          <basename property="dir" file="@{file}" /> 
          <zip destfile="${project.build.outputDirectory}/alfresco/extension/agilent/${dir}.acp" basedir="@{file}" /> 
         </sequential> 
        </for> 
       </tasks> 

Nhưng thư mục đặc tính không thay đổi !!! Và tất cả lưu trữ có tên "1.acp". Làm thế nào để làm cho tài sản này có thể thay đổi hoặc làm theo cách khác?

Trả lời

6

Bạn có thể sử dụng một 1,8 Ant Local task

Trong trường hợp của bạn:

<sequential> 
    <local name="dir"/> 
    <basename property="dir" file="@{file}"/> 
    <zip 
    destfile="${project.build.outputDirectory}/alfresco/extension/agilent/${dir}.acp" 
    basedir="${dir}" 
    /> 
</sequential> 
4

Bạn có thể sử dụng số var task từ thư viện kiến.

Thuộc tính unset, cho phép bạn thiết lập lại giá trị (ví dụ từ trên link):

<property name="x" value="6"/> 
    <echo>${x}</echo> <!-- will print 6 --> 
    <var name="x" unset="true"/> 
    <property name="x" value="12"/> 
    <echo>${x}</echo> <!-- will print 12 --> 

Vì vậy, bạn sẽ phải sửa chữa nó để:

<sequential> 
    <var name="dir" unset="true"/> 
    <basename property="dir" file="@{file}" /> 
    <zip destfile="${project.build.outputDirectory}/alfresco/extension/agilent/${dir}.acp" basedir="@{file}" /> 
</sequential> 
+0

Cảm ơn bạn !!! Nó thực sự hiệu quả !!! – VladislavLysov

Các vấn đề liên quan