2013-01-21 62 views
1

我正在用java構建工具ant編譯服務器上的Android應用程序。爲什麼使用sudo運行ant build會失敗,即使它以root用戶身份運行時會成功?

當我運行以下作爲根用戶生成成功:

export ANT_HOME=/usr/local/ant 
export JAVA_HOME=/usr/local/jdk 
export PATH=${PATH}:${ANT_HOME}/bin 
cd /path/to/android/file 
/usr/local/ant/bin/ant release 

然而,當我運行以下作爲netuser(或我測試的任何其他用戶):

export ANT_HOME=/usr/local/ant 
export JAVA_HOME=/usr/local/jdk 
export PATH=${PATH}:${ANT_HOME}/bin 
cd /path/to/android/file 
sudo /usr/local/ant/bin/ant release 

我得到以下錯誤:

BUILD FAILED 
/path/to/android/file/build.xml:83: The following error occurred while executing this line: 
/usr/share/android-sdk/tools/ant/build.xml:206: Class org.apache.tools.ant.taskdefs.condition.And doesn't support the nested "matches" element. 

我試圖改變sudoers文件,甚至給netuser所有PERMIS snet與netuser ALL =(ALL)ALL但是我得到的結果相同......有人能告訴我我做錯了什麼嗎?

在此先感謝您的幫助。

+0

1)發佈build.xml的相關部分。 2)使用-debug運行ant並查看輸出的一些提示。 – Jayan

回答

2

我懷疑你在運行時沒有選擇環境變量sudo。該錯誤消息表明它正在使用比您期望的更早版本的Ant任務。

要查看是否是這種情況,請嘗試以下(後出口),看看它是否是你期待什麼:

sudo env 

爲了保護環境變量,可以修改sudoers文件或使用-E選項。

相關問題