어떻게 Ant 태스크를 사용하여 Java 클래스 이름을 파일 경로로 변환합니까?Ant : 클래스 이름을 파일 경로로 변환
예를 들어, foo.bar.Duck
을 포함하는 속성이 주어진다면 foo/bar/Duck.class
을 얻고 싶습니다.
<pathconvert>
및 <regexpmapper>
의 관점에서이를 구현하려고 시도했지만 실패했습니다.
어떻게 Ant 태스크를 사용하여 Java 클래스 이름을 파일 경로로 변환합니까?Ant : 클래스 이름을 파일 경로로 변환
예를 들어, foo.bar.Duck
을 포함하는 속성이 주어진다면 foo/bar/Duck.class
을 얻고 싶습니다.
<pathconvert>
및 <regexpmapper>
의 관점에서이를 구현하려고 시도했지만 실패했습니다.
여기에는 Ant resources 및 unpackagemapper
을 사용하는 다른 방법이 있습니다.이 방법은이 용도로 설계되었습니다. 반대로 package mapper
도 사용할 수 있습니다. 훨씬 간단
<echo message="File: ${toString:file.name}" />
내가 이것에 대한 개미 스크립트 자바 스크립트를 사용하여 기분이
[echo] File: foo/bar/Duck.class
다음은이 작업을 수행 할 수있는 가능한 방법 :
<property name="class.name" value="foo.bar.Duck"/>
<loadresource property="file.name">
<string value="${class.name}" />
<filterchain>
<replaceregex pattern="\." replace="/" flags="g" />
<replaceregex pattern="$" replace=".class" />
</filterchain>
</loadresource>
이것은 file.name
특성에 원하는 foo/bar/Duck.class
을 넣습니다.
을 산출 :
<property name="class.name" value="foo.bar.Duck"/>
<resources id="file.name">
<mappedresources>
<string value="${class.name}" />
<unpackagemapper from="*" to="*.class" />
</mappedresources>
</resources>
당신은 부동산 도우미 구문 ${toString:...}
예에 의해 자원 값을 사용
<property name="class.name" value="foo.bar.duck" />
<script language="javascript">
var className = project.getProperty("class.name");
println("before: " + className);
var filePath= className.replace("\\", "/");
println("File Path: "+filePath);
project.setProperty("filePath", filePath);
</script>
<echo message="${filePath}" />
참고 : 변수 이름을 인수 (예 : var wsPath)로 지정하면 오류가 발생할 수 있습니다.
이 솔루션은 ** 만 ** 자원이 다른 곳에서 찾을 수 있습니다 만하면 작동합니다. 그렇지 않으면 [@matt] (http://stackoverflow.com/a/9135198/1099452)의 솔루션을 사용하십시오. – lucasvc