2012-08-06 66 views
2

以下情形:工作區(多用戶)之外使用Eclipse項目

我們想用一個根文件夾爲我們的Eclipse項目。因爲我看到,那個eclipse不支持多用戶工作區(許多用戶同時在同一個工作區),我正在尋找另一個解決方案。

隨機我創建了一個「新項目」沒有默認位置,而不是我們在工作區外的位置(每個客戶端都有自己的工作區)。

Eclipse將{}工作區下生成/。元/ .plugings/org.eclipse.core.resources/.projects/

,只是保存有關項目的位置和其他一些信息的文件夾數據(.safeable,.tree)。 因此,可以重命名一個項目,並自動刷新其他客戶端的項目。 大多數情況下,它看起來並不那麼糟糕。我的問題: 我有一個不好的感覺。要通過源代碼創建這些「鏈接的項目」,我需要使用「內部包」。而且我不確定,如果這是正確的行爲。

因此,如何處理一個場景,其中一些用戶需要在eclipse應用程序中共享二進制數據。 SVN和.git對二進制文件不太舒服。

我欣賞任何建議。謝謝。

更新

我該如何解決了這個問題:

每個用戶都有自己的工作區。除此之外,還有「中央工作區」。這只是一個普通的工作空間,但是用戶工作空間中的每個IProject都從哪裏連接起來。

這裏的源代碼,鏈接,該鏈接位於自己的工作區外的IProject:

IProjectDescription description = null; 
description = ResourcesPlugin.getWorkspace().loadProjectDescription(new Path(path +"/.project")); 
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(description.getName()); 
project.create(description, IProject.FORCE, null); 
if (!project.isOpen()) { 
    project.open(null); 
} 

你應該在WorkspaceJob運行這段代碼。

之後,您可以使用IProject的工作空間,這些工作空間並不在無限用戶的範圍內。在這種情況下,你不使用任何內部軟件包。

回答

2

共享項目是可能的食,但也有,你需要記住的一些要點:

Eclipse不期望別人來修改項目中的文件。編譯器分配給項目時尤其如此。如果你有一個Java項目,那麼就有一個Java編譯器,如果其他人改變輸出文件夾中的文件,這個編譯器會變得非常困惑。 從不共享有編譯器/構建器的項目。

另一種解決方案是將二進制數據放在文件系統的共享位置,然後使用鏈接將它們導入到項目中。請參閱Creating linked resources的在線幫助。這不會複製文件,它只是使資源顯示在視圖中。

因此,如果您需要查看文件,但在項目中的代碼需要訪問這些文件時(如單元測試),因爲這些鏈接純粹是虛擬的,所以這種方法非常有效:它們只存在於Eclipse UI。

最後,SVN和git都可以很好地處理二進制數據。當你簽出/更新/提交時,他們可能需要大量的內存,但如果數據沒有改變,你應該會很好(除非數據大於1GB)。

+0

SVN/GIT不是一個機會。二進制文件會經常更改,以便存儲庫將會增長和增長。所有簽入/結帳的表現都會受到影響。 共享項目的外觀很好,我會檢查它們。在這種情況下,我們不使用編譯器。 我們需要通過代碼進行訪問,所以鏈接的資源不合適。 您對我的「解決方案」有何看法? 祝你好運 – Timo 2012-08-07 06:25:20

+0

爲什麼你需要Eclipse來查看文件?你如何在Eclipse中定義一個指向包含數據的文件夾並使用它的變量? – 2012-08-07 08:03:27

+0

我需要他們作爲IResources。已經有很多代碼了,我不想重寫。這是典型的日食方式。 – Timo 2012-08-07 08:05:47

相關問題