2013-10-20 69 views
1

我正在開發一個java項目。目前我如何上傳更改到服務器是我已經在我的本地主機上運行項目,並創建.class文件並通過ftp將這些.class文件上傳到服務器。但是當我做這些事情時,上傳文件需要花費大量的時間,並且在完成上傳之前有時文件上傳會失敗。如何將java文件推送到git中

目前我開始使用php的git。如果我開始在git中存儲java文件,這將是最好的方法。我是否需要將class文件存儲在git上,或者我需要將.java文件存儲在git中。

當我從服務器調用git pull函數時,我需要在我的服務器上工作我最新的更改。請給我一個解決方案。

回答

2

.class文件存儲運行代碼時由jvm使用的java字節碼。如果你希望能夠在'git pull'後遠程運行你的代碼,那麼我建議推送.class文件。否則,您需要使用'javac'在遠程機器上編譯它們。

作爲一般的規則,git主要用於源代碼。 .class文件是你通常在.gitignore中看到的東西,因爲遠程編譯並不可怕,尤其是如果你在你的版本庫中包含makefile的話。

編輯:您可能想要避免提交.class文件的另一個原因是它們可能無法在不同版本的jvm上運行。本地編譯可確保生成的.class文件將在該機器的jvm版本上運行。

2

Git是您的項目的版本控制系統。 .class文件在編譯項目時生成。所以理想情況下,你應該避免在Git上存儲.class文件。

自動生成的文件如系統生成的日誌或文件(如編譯文件)應該被忽略。您可以通過創建.gitignore文件來忽略這些文件。

+0

構建控制文件,比如pom.xml'應以及要檢驗的螞蟻'build.xml'或Maven';這提供了一種可重複的,穩定的方式來重構源代碼中的編譯代碼。 – chrylis

+0

是的,這些文件對項目很重要,應該簽入。 –

0

Java允許重建整個構建的文件和資源如properties, xml, makefiles應該添加到git中。另外,如果你不使用Maven(你應該!),你應該添加你用來攪拌的罐子。這樣,每當新開發人員檢查你的項目時,他都有編譯和運行它的一切。

避免(增加的.gitignore):

- class files(target/build folder?) 
- credentials 
- log files(or any possible output) 
+0

yah這種方式對開發人員來說是好的,但是我怎樣才能使用上述方法將更改拉到服務器上呢? – anoop

+0

@Otimizer我不知道我明白你想要什麼。你能解釋一下你想達到什麼嗎? –

+0

我希望我的開發人員每天都需要在git中單獨上傳分支。並且,在解決問題後,我需要將這些更改合併到主服務器上,並且還需要將這些更改提供給服務器。但是,如果我在git中存儲java文件,當我調用git pull時沒有用處。因爲它在服務器上的java文件中產生。我的要求是,當我拉所有類文件需要上傳到服務器,當我重新啓動tomcat的變化將影響服務器!涼!。 – anoop