2010-07-30 5 views
0

다음 ant build.xml 스 니펫에서 rsync 작업을 수행하고 있습니다. rsync 명령은 암호를 묻습니다.ant 스크립트에서 exec 용 데이터를 두 번 입력해야하는 이유는 무엇입니까?

문제는 암호를 묻는 메시지가 나타나면 한 번 입력하고 Enter 키를 누르면 아무 일도 일어나지 않습니다. 그래서 다시 입력하고 (두 번째) Enter를 누르면 작동합니다.

내가 두 번 입력해야한다는 것이 이상하고 왜 그런지 이해하지 못합니까?

<!-- Define a target which publishes the final build apk to the test server. --> 
<target name="upload" depends="release"> 
     <exec executable="rsync" dir="${basedir}"> 
       <arg value="--stats"/> 
       <arg value="--progress"/> 
       <arg value="-vaz"/> 
       <arg value="bin/myfile.apk"/> 
       <arg value="[email protected]:/path/to/backupfolder"/> 
     </exec> 
</target> 
+0

셸에서 같은 명령을 직접 실행할 때 어떤 동작이 있습니까? –

+0

쉘의 동일한 명령은 한 번 프롬프트하고 첫 번째 시도에서 입력을 받아들입니다. –

+0

나는 또한 첫 번째 프롬프트에 enter를 누르고 두 번째 프롬프트에 암호를 입력하면 암호가 허용됩니다. 첫 번째는 가짜와 같습니다. –

답변

0

쉘에 이미 설정된 일부 환경 변수 값은 ant 스크립트에서 액세스 할 수없는 경우가 있습니다. RSYNC_RSH, RSYNC_PASSWORD. -e 또는 --password-file과 같은 해당 옵션을 통해 변수/값을 설정하거나 ant 내부의 env 요소를 통해 작업 내에서 변수를 설정할 수 있습니다.

+0

-e를 사용하여 미리 공유 한 키를 정의하지 않았거나 RSYNC_PASSWORD를 정의하지 않았으므로 인증을 요청합니다. 그 중 하나를 수행하는 것은 분명히 문제를 피할 수 있지만 업로드를위한 비밀번호를 입력하는 보안을 좋아합니다 ... –

관련 문제