2009-10-11 42 views
0

由於對eclipse基礎架構的理解不完整,我有一個問題。歷史上我們在構建過程中有一件醜陋的事情。它看起來像下面這樣:
在eclipse構建完整的工作空間後,在本地構建插件中有一件不完整的事情。它是當前在執行特殊插件測試期間構建的一些數據文件(實際上什麼都不做測試,但是生成必要的數據)。在工作區中進行任何更改後,沒有必要執行該測試。實際上,只有在很少觸及的代碼部分發生變化後才需要。但是,如果對該代碼部分進行了更改,那麼在更新該特殊數據文件之前,構建變得不可用。該文件現在存儲在CVS上,因爲它現在只能在本地創建,但在產品構建中是必需的。
我想以這種方式更改構建過程,以便在工作區構建過程中執行此插件測試,因此不需要手動運行它。我試過編寫ant文件,它將使用org.eclipse.test/library.xml中的模板運行該測試,但該插件未加載。我不知道爲什麼會發生這種情況,但我擔心這可能是由於我的日食工作副本中缺少測試插件而發生的。
我已經閱讀了一些關於在批處理模式下運行插件測試的文章,但它們只是增強了我對於測試開發插件的單獨eclipse副本必要性的感覺。
我們使用ant進行插件構建,這些腳本的整個結構非常複雜,所以我認爲在頂層構建過程中進行全局更改是不可能的。我必須完成我的任務有哪些選項?也許有人已經有過類似的經驗...Eclipse:如何運行插件測試作爲本地構建的一部分

請注意,實際上我想擺脫那個測試,贊成一些特殊的日食應用程序,但我認爲這不是重要的現在,因爲我相信我的問題可能比運行插件測試更普遍。

回答

0

這是應該如何腳本ANT樣子:

<!-- Prepare extension --> 
    <mkdir dir="${extension_dir}/eclipse"/> 
    <antcall target="make_symlink"> 
    <param name="target" value="${workspace_loc}"/> 
    <param name="source" value="${symlink_location}"/> 
    </antcall> 

    <!-- Install extension --> 
    <mkdir dir="${eclipse-home}/links"/> 
    <echo file="${link_file}">path=${extension_dir}</echo> 

    <!-- Run test --> 
    <antcall target="core-test"> 
    <param name="plugin-name" value="testsPlugin"/> 
    <param name="classname" value="testsPlugin.TestsClass"/> 
    <param name="data-dir" value="${workspace_loc}/../some_workspace"/> 
    <param name="plugin-path" value="${workspace_loc}"/> 
    </antcall> 

    <!-- Uninstall extension --> 
    <delete file="${link_file}"/> 

    <!-- Delete extension --> 
    <antcall target="delete_symlink"> 
    <param name="source" value="${symlink_location}"/> 
    </antcall> 
    <delete dir="${extension_dir}"/> 

此腳本應通過「eclipse-home」,「os」,「ws」,「arch」參數設置參數。首先是從屬eclipse實例的路徑,後三個是用於匹配運行平臺的屬性。在本地構建中,它們可以分別具有osgi.os,ogsi.ws和osgi.arch的值。

0

我的猜測是,你有一些源文件,當改變時強制重建數據文件。重建有點慢,所以你不想一直這麼做。

我會這樣攻擊:移動數據文件依賴的所有代碼到一個項目中。編寫一個構建數據文件的ANT腳本。將該ANT腳本添加爲項目的自定義構建器(打開項目屬性,然後單擊「構建器」),然後在項目的每個更改中運行它。這將通過保存一個輸入文件來保持數據文件的最新狀態。

+0

這正是我想要做的。問題是如何編寫這樣的腳本,它將在一些插件中運行代碼。 – okutane 2009-10-11 14:28:04

+0

只需用通常的方法編寫一個ant腳本,並使用Eclipse項目中的「Builders」設置,讓它在您點擊該項目的任何編輯器中的「Save」時運行。 – 2009-10-13 08:23:20

相關問題