2010-09-23 33 views
6

Tôi đang sử dụng kiến ​​để tạo MANIFEST.MF cho một .jar và tôi cần phải thêm nhiều tệp kê khai <section> dựa trên danh sách tệp trong thư mục. Tuy nhiên, tôi cần phải tự động hóa quy trình để thực hiện việc này tại thời gian xây dựng vì danh sách sẽ thay đổi giữa phát triển và triển khai.Tự động thêm nhiều "phần" vào tệp kê khai?

Ví dụ:

<manifest file="MANIFEST.MF"> 
    <foreach files="./*"> 
    <section name="section"> 
     <attribute name="Attribute-Name" value="$file"/> 
    </section> 
    </foreach> 
</manifest> 

Tôi đã nhìn foreach từ Ant-contrib nhưng nó không giống như nó sẽ làm việc trong trường hợp này.

Điều này có khả thi không?

+0

Ý anh là gì bởi phần? –

+0

bạn có thể chèn đầu ra tệp kê khai ví dụ cho hai tệp đầu vào trong thư mục đến không? (Tôi đặc biệt tự hỏi liệu bạn có muốn tên phần giống nhau cho mỗi tệp hay không?) –

Trả lời

4

Bạn có thể làm điều này với Manifest task

<manifest file="MANIFEST.MF"> 
    <section name="section"> 
     <attribute name="Attribute-Name" value="value"/> 
    </section> 
    <section name="section/class1.class"> 
     <attribute name="Second-Attribute-Name" value="otherValue"/> 
    </section> 
</manifest> 

Nó sẽ tạo ra biểu hiện này:

Manifest-Version: 1.0
Created-By: Apache Ant 1,7

Tên: phần
Thuộc tính-Tên: giá trị

Tên: phần/class1.class
Second-attribute-name: otherValue

Bạn có thể duy trì hai nhiệm vụ khác nhau tùy chỉnh để xử lý các trường hợp khác nhau, và gọi cho một ngay tại thời điểm thích hợp.


Đối với một quản lý "tự động":

<target name="manifest-generation"> 
    <foreach param="file" target="manifest"> 
     <path> 
      <fileset dir="."> 
       <include name="**/*.class"/> 
      </fileset> 
     </path> 
    </foreach> 
</target> 

<target name="manifest"> 
    <manifest file="MANIFEST.MF" mode="update"> 
     <section name="${file}"> 
      <attribute name="Attribute-Name" value="value"/> 
     </section> 
    </manifest> 
</target> 
+0

nếu điều này không đủ linh hoạt, thì bạn có thể cần phải viết nhiệm vụ tùy chỉnh của riêng mình –

+0

Vâng, tôi biết tôi có thể làm điều đó theo cách thủ công, nhưng đó không phải là những gì tôi yêu cầu. Tôi hỏi làm thế nào để ** tự động ** thêm nhiều phần dựa trên các tập tin trong hệ thống tập tin. –

+0

Sau đó, bạn có ý nghĩa gì khi "tự động hóa"? Bạn muốn kết quả gì? –

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