2012-04-09 25 views
6

Tôi có cấu trúc thư mục sau:Làm cách nào để đưa tệp jar vào thư mục lib của tệp tai bằng kiến?

project.ear 
     lib folder 
      ProjectEJBClient.jar 
     META-INF folder 
     projectEJB.jar 

build.xml My chứa các dòng sau để tạo gói EAR

<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"> 
     <fileset dir="${build.dir}" includes="ProjectEJBClient.jar"/> 
     <fileset dir="${build.dir}" includes="projectEJB.jar"/> 
</ear> 

Đoạn mã trên không thể tạo một gói EAR với thư mục lib trong đó bao gồm các ProjectEJBClient.jar file

Tôi muốn tạo thư mục lib và sao chép ProjectEJBClient.jar vào thư mục lib đó.

Sau quá trình này, tôi muốn tạo một dự án EAR với thư mục lib này.

Tôi không biết cách tạo thư mục lib và sao chép ProjectEJBClient.jar vào thư mục đó và đưa thư mục này vào project.ear.

Trả lời

7

Sử dụng một zipfileset:

<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml"> 
    <zipfileset dir="." prefix="lib"> 
     <include name="ProjectEJBClient.jar"/> 
    </zipfileset> 
    <fileset dir="${build.dir}" includes="projectEJB.jar"/> 
    </ear> 

Các prefix="lib" sẽ đảm bảo, rằng jar sẽ chịu /lib vào tai của bạn.

+0

Giải pháp là đang làm việc – user1314506

0

Trong trường hợp của tôi nó làm việc, vì tôi cần thiết để bao gồm một số tập tin, và tôi giải quyết bằng zipfileset theo một cách khác, dưới apache-ant-1.9.1and jdk1.7.0_60:

<ear earfile="${dst_dir}/${ear_file}" appxml="${dep_dir}/ear/application.xml"> 
    <zipfileset 
    dir="${m2.home}/commons-codec/commons-codec/1.9" 
    prefix="lib" 
    includes="**/*.jar"/> 
    <zipfileset 
    dir="${m2.home}/log4j/log4j/1.2.17" 
    prefix="lib" 
    includes="**/*.jar"/> 
    <fileset dir="${dst_dir}" includes="${jar_file}"/> 
    <fileset dir="${dst_dir}" includes="${war_file}"/> 
</ear> 
Các vấn đề liên quan