2008-10-30 88 views
15

我使用eclipse來處理最初獨立於eclipse創建的應用程序。因此,應用程序的目錄結構決不會對eclipse友好。以編程方式生成Eclipse項目

我想以編程方式爲應用程序生成項目。該.project.classpath文件是很容易弄清楚,我已經瞭解到,項目存儲在工作區下<workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects

不幸的是,一些文件在這裏下(特別是.location)似乎某種被編碼二進制格式。在預感上我試圖用ObjectInputStream進行反序列化 - 沒有骰子。所以它看起來不是一個序列化的java對象。

我的問題是:有沒有辦法自動生成這些文件?

對於好奇,我在嘗試反序列化.location文件中的錯誤是:

java.io.StreamCorruptedException: java.io.StreamCorruptedException: invalid stream header: 40B18B81

更新:我的目標是能夠與更換新的Java Project嚮導一個命令行腳本或程序。原因是有問題的應用程序實際上是一個非常大的J2EE/weblogic應用程序,我喜歡將其分解爲大量子項目(近20個)。更復雜的是,我們使用clearcase for SCM,併爲每個版本創建一個新的分支。這意味着我需要爲我創建的每個開發視圖(分支)重新創建這些項目。這經常發生足夠的自動化。

回答

18

你應該可以通過編寫一個小型的Eclipse插件來實現這一點。你甚至可以將它擴展成一個「無頭」的RCP應用程序,並傳入你需要的命令行參數。

準系統代碼來創建一個項目是:

IProgressMonitor progressMonitor = new NullProgressMonitor(); 
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); 
IProject project = root.getProject("DesiredProjectName"); 
project.create(progressMonitor); 
project.open(progressMonitor); 

只要看看在爲導入項目嚮導Eclipse代碼給你的地方用它去一個更好的主意。

+0

謝謝,我會試試這個 – 2008-10-31 15:56:55

2

使用AntEclipse

可以從螞蟻創建Eclipse項目。