2008/06/08 00:13

앤트(Ant)의 프로퍼티 파일(.properties)의 제한에 대해서..

디렉토리 구분자의 제한

Ant에서는 경로를 나타낼 때, 디렉토리 구분자로 '/'와 '\'를 모두 사용할 수 있어요.
Ant는 두 가지 슬래시 모두를 사용한다고 해서 부끄러워하지 않으며, 오히려 그것을 자랑스럽게 생각한다.
- 자바의 또 다른 멋진 도구 Ant

그러나 프로퍼티 파일에서 경로를 지정할 때 '\'를 사용하고 싶으면, '\\'로 써야해요.
왜냐하면 자바에서는 '\' 문자를 이스케이프 문자로 취급하기 때문이지요. 

프로퍼티 파일 간 참조의 제한

Ant의 프로퍼티는 전방참조(forward-reference)와 후방참조(backward-reference)가 모두 가능하죠.

<property file="first.properties" />
<property file="second.properties" />

그러나 위와 같이 프로퍼티 파일을 2개 사용할 때, 첫번째 프로퍼티 파일에서 두번째 프로퍼티 파일에 존재하는 프로퍼티는 접근할 수 없어요(전방참조 불가).

그러므로 단일 파일에서만 전방 참조가 가능한 것이죠.

build.properties
# common build properties

net=./net
net.kjunine=${net}/kjunine

net.other=.\\net
net.kjunine.other=${net.other}\\kjunine


first.properties
# first properties file

first=first
first.second=${first}.${second}


second.properties
# second properties file

second=second
second.first=${second}.${first}


build.xml
<project name="Ant Project" default="default" basedir=".">

	<!-- START: PROPERTY -->
	<property file="build.properties" />
	<property file="first.properties" />
	<property file="second.properties" />
	<!-- END: PROPERTY -->

	<!-- START: DEFAULT -->
	<target name="default">
		<echo message="이것은 'Ant Property PropertiesFile'의 빌드 파일이에요." />
		<echo message="앤트(ant) 1.7.0 버전에 최적화되어 있어요." />
		<echo message="사용법:" />
		<echo message="	ant directorydelimiter" />
		<echo message="	ant betweenproperties" />
	</target>
	<!-- END: DEFAULT -->

	<!-- START: DIRECTORY DELIMITER-->
	<target name="directorydelimiter">
		<echo message="net.kjunine = ${net.kjunine}" />
		<echo message="net.kjunine.other = ${net.kjunine.other}" />
		<mkdir dir="${net.kjunine}" />
		<delete dir="${net}" />
		<touch file="${net.kjunine.other}" mkdirs="true" />
		<delete dir="${net}" />
	</target>
	<!-- END: DIRECTORY DELIMITER -->

	<!-- START: BETWEEN PROPERTIES-->
	<target name="betweenproperties">
		<echo message="first = ${first}" />
		<echo message="second = ${second}" />
		<echo message="first.second = ${first.second}" />
		<echo message="second.first = ${second.first}" />
	</target>
	<!-- END: BETWEEN PROPERTIES -->

</project>


사용법:

ant

default:
     [echo] 이것은 'Ant Property PropertiesFile'의 빌드 파일이에요.
     [echo] 앤트(ant) 1.7.0 버전에 최적화되어 있어요.
     [echo] 사용법:
     [echo]  ant directorydelimiter
     [echo]  ant betweenproperties

디렉토리 구분자 예제:

ant directorydelimiter

directorydelimiter:
     [echo] net.kjunine = ./net/kjunine
     [echo] net.kjunine.other = .\net\kjunine
    [mkdir] Created dir: C:\Workspace\Project\Workspace\AntExample\Property\PropertiesFile\net\kjunine
   [delete] Deleting directory C:\Workspace\Project\Workspace\AntExample\Property\PropertiesFile\net
    [touch] Creating C:\Workspace\Project\Workspace\AntExample\Property\PropertiesFile\net\kjunine
   [delete] Deleting directory C:\Workspace\Project\Workspace\AntExample\Property\PropertiesFile\net

프로퍼티 파일 간 참조 예제:

ant betweenproperties

betweenproperties:
     [echo] first = first
     [echo] second = second
     [echo] first.second = first.${second}
     [echo] second.first = second.first

환경:
    Ant 1.7.0

Trackback 0 Comment 0