1
다른 매크로의 요소 내부에서 매크로를 호출하고 싶습니다.개미 중첩 매크로 호출
<macrodef name="jc">
<attribute name="name" />
<attribute name="destdir" />
<element name="fileset-list" optional="false" />
<sequential>
<jar destfile="@{destdir}${file.separator}@{name}.jar" update="false">
<fileset-list />
<manifest>
<attribute name="Manifest-Version" value="1.0" />
</manifest>
</jar>
</sequential>
</macrodef>
다른 매크로
<macrodef name="defaultfs" description="Defines the default fileset">
<attribute name="path" />
<sequential>
<fileset dir="${dir.build.classes}">
<include name="@{path}/**/*.class" />
</fileset>
<fileset dir="${src.ehs}">
<include name="@{path}/**/icons/**" />
<include name="@{path}/**/sounds/**" />
<include name="@{path}/**/*.gif" />
<include name="@{path}/**/*.png" />
<include name="@{path}/**/*.wav" />
<include name="@{path}/**/*.jpg" />
<include name="@{path}/**/*.properties" />
<include name="@{path}/**/*.xml" />
<include name="@{path}/**/jaxb.index" />
</fileset>
</sequential>
</macrodef>
나는 다음과 같이이 매크로를 사용 :
<jc destdir="${dir.build.jar}" name="thejar">
<fileset-list>
<defaultfs path="org/path/inner" />
</fileset-list>
</jc>
는 내가 얻을 것은 다음과 같은 오류 메시지입니다 : 의 내가 다음 매크로를 가지고 가정하자
jar doesn't support the nested "defaultfs" element.
뭐가 잘못 됐니?
"기본"XML 요소를 지원하는 "jar"ANT 작업이 작성되지 않았습니다. ANT의 매크로는 뭔가 다른데 템플릿과 비슷하게 작동합니다. –
당신은 맞습니다,하지만 제 요구 사항은 더 넓은 방법으로 jc를 사용하는 것과 유사한 파일 세트로 빌드하는 jar 파일을 가지고 있습니다. 매크로는 한 번만 평가됩니까? – landal79
매크로에 (암시 적) 요소 매개 변수 내에서 매크로를 사용하려는 비슷한 경우가 있습니다. 내부 매크로가 외부 매크로보다 먼저 평가되는 방법을 알아 냈는 지, 아니면 가능한지 알아 냈습니다. 이것에 대한 답을 찾을 수 있다면, 나는 확실히 관심이 있습니다! (그리고 두 개의 매크로를 결합하는 것은 답이 아닙니다. 사용자가 매크로가 아니라는 것을 알지 못해서 각각의 함수가 독립적으로 Ant 작업처럼 독립적으로 작동하기를 바랍니다. – keshlam