특정 디렉토리에서 거부하는 모든 sql 파일을 실행하려고합니다. 내가 그 디렉토리에있는 3 개 SQL 파일이있는 경우mysql 명령 줄을 사용하여 (ant를 통해) 일련의 sql 파일을 실행하는 방법
<apply executable="mysql" dir="." failonerror="true">
<arg value="--host=dbbackend"></arg>
<arg value="--user=stack"></arg>
<arg value="--password=overflow"></arg>
<arg value="mydbname"></arg>
<arg value="--e source dummy.sql"></arg>
<fileset dir="${db.dump.location.data}" casesensitive="no" description="take all sql files">
<patternset>
<include name="**/*.sql" />
</patternset>
</fileset>
</apply>
, 다음 dummy.sql 3 회 호출됩니다
mysql --host=dbbackend --user=stack --password=overflow dbname -e 'source file1.sql'
이는 다음과 같이 표현 될 수있다 : 내가 만들고 싶어 호출이 같은 것입니다 . 여태까지는 그런대로 잘됐다.
<arg value="--e source dummy.sql"></arg>
에 : 자리 표시가있는 경우
이 <arg value="--e source ${unknown.placeholder.name}"></arg>
, 다음 i는 "적용"태그의 "입력"속성을 사용하려면이 줄을 변경 사용할 수있는 자리가 있는가 (그리고 인수 "-e"를 제거하십시오).
가 "적용"요소에 사용할 수있는 "SRCFILE"태그입니다,하지만 난이 호출 할 수 없습니다 (작동하지 않습니다) :
<arg value="--e source"></arg>
<srcfile/>
당신이 기본 개미와 함께 작업을 수행하는 방법에 대한 제안 사항이 있습니까 선언? antcall + 파일 세트 (+ 자리 표시 자)를 사용하여 문제를 해결할 수 있습니까?
해결 방법은 파일 세트를 통해 반복하고 sql 파일에 대한 참조로 임시 SQL 파일을 만드는 것입니다. 마지막 단계로 "-e"를 통해 정적이라고 부릅니다. 하지만 그건 내가 (이 질문에 의해) 제거하려는 해결 방법입니다.
추신 : ant-contrib 기능을 사용하고 싶지 않습니다.
답변이 없으므로 화제가 아닙니다. 당신은' '를 쓸 수 있고,''을 사용할 필요는 없으며 그냥'/>'로 쓰면됩니다. 오 그래, ... 그리고 네가 네가 얻었을 경우에 대답을 받아 들여라. –