2011-10-17 24 views
16

我在每個編譯之前要執行的Eclipse JDT項目中都有一些Ant任務,所以我在Eclipse構建器配置中添加了一個Ant構建器。作爲構建文件的位置,我進入將Ant構建器集成到Eclipse中:錯誤「變量引用空選擇」

${workspace_loc:${project_path}/build.xml} 

我做希望有任何絕對路徑,或者項目名稱,在這裏。 Eclipse配置是存儲庫的一部分,其他用戶使用不同的文件系統佈局和可能不同的Eclipse項目名稱進行檢查。例如,我通常在Eclipse工作區中有相同項目的幾個工作副本,每個副本都有不同的項目名稱。

這在大多數情況下都適用。但是,我有時會在對話框中收到以下錯誤消息:

構建期間發生錯誤。
在項目「MyProjectName」上運行構建器「集成的外部工具構建器」時出錯。
變量引用空選擇:$ {project_path}
變量引用空選擇:$ {project_path}

這似乎當在沒有項目的資源在包中選擇Eclipse的決定建項目發生資源管理器。我可以通過在項目中創建一個虛擬文件來複制它,在Eclipse之外刪除文件,在Eclipse中選擇它並按F5。 Eclipse會注意到該文件不再存在,將其從Package Explorer中移除(因此不再選擇任何內容),然後構建項目並給出錯誤消息。

雖然它不是真的那麼重要的Ant任務是爲每個編譯運行,我不希望有這樣的錯誤消息框,這將混淆用戶。

所以,我怎麼能

  • 參考以不同的方式,以使問題消失build.xml文件,或
  • 解決問題,或
  • 取消錯誤對話框這個特殊錯誤?

任何幫助,將不勝感激。我使用Eclipse 3.7(Indigo)。

回答

17

顯然,這裏面有......一個變量($ {} workspace_loc)的參考翻譯給一個變量($ {} project_path)的引用問題。

你可以嘗試在$ {} build_project變量,而不是

${build_project:/build.xml} 

我希望它能幫助。

+0

感謝您的回答,不幸的是它沒有幫助。使用'$ {project_loc:/build.xml}',每個構建都會出現錯誤消息,因此看起來路徑根本不正確。 –

+0

好的,我檢查了一下,這個路徑對我有用:$ {workspace_loc}/$ {project_path} /build.xml – Efthymis

+0

對不起,它不適用於我。但是,您使用其他變量的想法非常好,我找到了'build_project'變量,這似乎正是我所期待的(不知道爲什麼我錯過了它)。使用'$ {build_project:/build.xml}'它可以正常工作。你會更新你的答案,所以我可以接受它嗎? –

9

您在Eclipse的用戶界面中遇到了一些不便。邏輯規定,當你打開一個項目時,應該填充關於打開項目的變量。 但他們不是,因爲由於錯誤或其他原因,代碼在焦點移動到其他地方後將其殺死。

因此,作爲一種變通方法,您可以:

  1. 把完整路徑XML文件
  2. 只是左側的項目啓動你的外部工具,點擊(在Project Explorer視圖)之前,然後按下啓動按鈕。

點擊該項目(文件夾圖標),將填充變量

順便說一句,我認爲${workspace_loc}${project_path}/build.xml是好的。

+0

感謝您的回答。不幸的是,它不能幫助我,因爲(正如我所說),我不能使用完整路徑(文件在存儲庫中),這不是關於手動啓動工具,而是關於(自動)項目構建,所以Eclipse決定何時執行這個,不是我。然而,Efthymis的答案是正確的,並且工作,所以不需要解決方法。 –

+1

步驟#2在這裏解決了我的問題。出於某種原因,如果焦點位於編輯器視圖中,則調試時不會填充$ {project_loc}。按照建議在啓動之前立即在Project Explorer視圖中單擊該項目。謝謝! – fwc

+1

在2015年之前,任何人都無法解決這個問題:-(我在修改代碼後想重新運行失敗的單元測試時,總會遇到這種問題 –