을!
<!-- goups all directories of the form "my_dist_folder-xx" -->
<dirset id="dir_list" dir="${env.WORKSPACE}">
<include name="my_dist_folder*"/>
</dirset>
<!-- generate path names of the above dirs and sort them -->
<pathconvert property="dir_names_list" refid="dir_list" pathsep=","/>
<sortlist property="sorted_names_list" value="${dir_names_list}" delimiter="," />
<!-- pick the last path-name (as it corresponds with the latest version-number directory) -->
<propertyregex property="dist_folder" input="${sorted_names_list}" regexp=",?([^,]+)$" select="\1"/>
<!-- use this "dist_folder" as "todir" in the copy task -->
<copy todir="${dist_folder}" >
<fileset dir="${env.WORKSPACE}/my_src_folder">
<exclude name="**/*.svn"/>
</fileset>
</copy>
질문에서, 이러한 모든 my_dist_folder-xx..
폴더를 직접 것이라고 나타납니다,하지만 아래 근거리에있는 하위 디렉토리 ${env.WORKSPACE}
... 기반 디렉토리 내의 하위 디렉토리에있을 수있는 경우 <dirset>
작업에서 <include name="my_dist_folder*"/>
을 <include name="**/my_dist_folder*"/>
으로 바꿉니다.
UPDATE : 당신은 항상 시스템에만 한 같은 폴더 my_dist_folder-xx..
있을 거라고 확신하는 경우 또한, 당신은 제거 할 수 있습니다 다음과 같은 두 가지 라인 - <sortlist>
및 <propertyregexp>
의 <dirset>
생성하기 때문에 하나의 경로 이름이이므로 정렬/마지막 선택이 필요하지 않습니다. 따라서 <pathconvert>
속성을 사용하여 대상 폴더을 직접 설정할 수 있습니다. 예 :
<dirset id="dir_list" dir="${env.WORKSPACE}">
<include name="my_dist_folder*"/>
</dirset>
<!-- generate path name of the above dir -->
<pathconvert property="dir_names_list" refid="dir_list" pathsep=","/>
<!-- use this "dir_names_list" as "todir" in the copy task -->
<copy todir="${dir_names_list}" >
<fileset dir="${env.WORKSPACE}/my_src_folder">
<exclude name="**/*.svn"/>
</fileset>
</copy>
'my_dist_folder'의 샘플을 게시 할 수 있습니까? – sunbabaphu
이것은 폴더의 이름입니다! –
*'버전 기반 폴더이므로 대상 파일은 알 수 없습니다. '*. ** dest를 추측하고 있습니다. 폴더 이름 ** 형식은'my_dist_folder_'입니다. 그래서, 당신은 대상 폴더의 ** 가능한 값 **이 될 수 있습니까? –
sunbabaphu