Linux의 다양한 프로젝트의 빌드 파일에서 자주 사용되는 것을 보았고 out.absolute.dir
이것이 정확히 무엇을 의미하는지 정말 궁금합니다. 나는 다음 줄에서 언급한 짧은 빌드 파일을 작성했습니다.
<project name="Test_Ant_APK" default="print">
<property name="cal.out.dir" location="${out.absolute.dir}"/>
<target name="print">
<echo>p=${cal.out.dir}</echo>
</target>
</project>
명령줄에서 이 빌드 파일을 실행하면 다음과 같은 출력이 표시됩니다.
Buildfile: /home/jody/workspace/Test_Ant_APK/build.xml
print:
[echo] p=/home/jody/workspace/Test_Ant_APK/${out.absolute.dir}
BUILD SUCCESSFUL
Total time: 0 seconds
출력이 좀 헷갈리네요. 나는 우리가 출력을 해야 한다고 생각한다 p=/home/jody/workspace/Test_Ant_APK
. ${out.absolute.dir}
출력 끝 부분에 왜 그런 것이 있습니까? 무슨 뜻이에요? 이 빌드 파일에 문제가 있나요?
정확히 어디에 out.absolute.dir
?
답변1
(댓글로 시작했는데 너무 길어져서 답변이 되었습니다)
out.absolute.dir
Linux에서는 특별한 의미가 없습니다. 이는 Ant 빌드 스크립트에서 사용되는 변수처럼 보입니다. 관련되지 않은 많은 Ant 스크립트에 자주 나타나는 경우 이는 아마도 많은 Ant 사용자/개발자가 사용하는 일반적인 규칙일 것입니다(그러나 여전히 완전히 임의적이며 Ant 자체 외부에서는 특별한 의미가 없습니다).${out.absolute.dir}
다른 텍스트가 뒤에 오는 경우 쉘이 해당 변수를 명시적으로 사용하는지 확인하는 방법입니다. 예를 들어 리터럴 텍스트가 뒤에 오는${out.absolute.dir}foo
변수로 처리되는 것은 완전히 다른 변수(존재하지 않을 수 있음)로 처리 되어 오류가 발생합니다. 또는 더 나쁘게는 스크립트가 해서는 안 되는 일(예: 쓰기 대신 하위 디렉터리 에 쓰기)을 수행하게 만듭니다.)$out.absolute.dir
foo
$out.absolute.dirfoo
$out.absolute.dirfoo
/home/jody/workspace/Test_Ant_APK/
.../Test_Ant_APK
/home/jody/workspace/Test_Ant_APK/${out.absolute.dir}
변수의 값$out.absolute.dir
을/home/jody/workspace/Test_Ant_APK/
.이 변수가 가리키는 위치를 정확히 찾으려면 Ant 빌드 스크립트를 철저하게 검사하여 변수에 값을 할당하는 줄을 찾아야 합니다. 스크립트 사본 없이는 이 질문에 답할 수 없습니다.
grep 'out.absolute.dir.*='
개미 및 관련 빌드 스크립트에서 실행하는 것이 좋습니다 .$out.absolute.dir
다른 변수로 구성될 가능성이 있으므로 해당 값도 찾아봐야 합니다.
이 변수는 Ant 자체에 의해 자동으로 정의될 수 있습니다. 나는 확실히 알기에는 Ant에 대해 충분히 알지 못합니다.
답변2
예를 들어 설명해 보겠습니다.
홈 디렉토리가 다음과 같다고 가정합니다./home/jody
집 아래에 다음과 같은 디렉터리가 있다고 가정해 보겠습니다.work
로그인하시면 자동으로 홈디렉토리에 들어가게 됩니다. 따라서 실행할 때:
cd work #(*)
이 디렉토리에서 자신을 찾을 수 있습니다 work
.
하지만 당신이 다른 디렉토리에 있고, 다른 일을 하고 있고, 그 work
디렉토리로 가야 한다고 가정해 봅시다. 이 경우에는 다음을 실행합니다.
cd /home/jody/work #(**)
.
(*) is a relative directory
(**) is an absolute directory
메시지 앞의 마지막 줄을 보면 BUILD SUCCESSFUL
디렉터리 경로가 절대 경로임을 알 수 있습니다. 나는 귀하의 빌드 프로세스를 모르지만, 제가 알 수 있는 한, 귀하가 보는 경로는 절대 경로임을 알려주는 것 같습니다.