2008-10-10 117 views
1

我們有一個Java代碼庫,它目前是一個基於Web的Netbeans項目。隨着我們的組織和代碼庫的增長,我們顯然應該將我們系統的各個獨立部分劃分爲單個罐子。因此,一個用於數據訪問層的Jar庫,一個用於常規庫,一個用於專業知識訪問等。然後,我們將爲Web應用程序提供一個單獨的項目,並且可以爲一個命令行工具應用程序,另一個網頁應用程序等。這是構建代碼庫的正確方法嗎?

建議的做法和管理方法是什麼?是Maven嗎?只需創建單個項目並將其中一個項目的依賴項設置爲其他項目的jar文件,只需Netbeans就可以有效地完成這些任務嗎?

回答

0

我會創建ant腳本來構建件和部署。然後,您不依賴於您的IDE進行構建/部署。

0

我肯定會說檢查Maven(2)了。這樣做是非常好的。您可以非常輕鬆地定義各個模型和版本。 Netbeans在整合方面也做得不錯。

另外我建議你設置Archiva這將讓你依賴於你的公司內部產生的其他工件的二進制文件。這也充當代理,並且會保留項目可能具有的任何外部依賴項的本地副本,因此它可以很快在內部獲取新版本。

0

這聽起來像你的代碼已經到了你從WAR方法畢業並進入EAR級別的地步。

EAR是另一個包含所有其他JAR和WAR的組合,用於創建應用程序。有四種類型的模塊可以駐留在它,Web,EJB,連接器和實用程序中。大多數人只使用Web和實用程序,因此他們使用WEB-INF/lib方法。

但是,如果您開始獲得大量相互依賴關係,那麼您將創建一個EAR項目並使您的Web項目成爲其子項目。每個實用程序JAR只是其他模塊使用的直接Java代碼,也會成爲EAR的子代。最後,在每個項目中應該有一個META-INF/manifest.mf文件,它只有JAR/WAR所依賴的JAR的名稱。

我是一個日食傢伙,大部分日食都會照顧你,但我確信netbeans具有非常類似的功能。

現在唯一的問題是您必須使用完整的Java EE服務器來部署EAR,所以我不認爲如果您正在使用的是Tomcat,則可以使用Tomcat。

+0

如果只是沒有任何其他JEE組件的Web項目,則無需執行此操作。簡單地將你的jar放在web應用lib目錄中更簡單,因爲不需要清單更新。即使戰爭部署在EAR中。 – Robin 2008-10-10 19:25:31

2

我同意上面的SteveG使用Maven2來幫助您模塊化代碼庫,但我會使用Nexus作爲Maven的本地存儲庫而不是Archiva。 Sonatype的傢伙也有一本關於如何使用Maven,Nexus並將其集成到IDE中的優秀(免費html/pdf)書籍。

不過要小心你決定分割你的項目。僅僅爲了它而過分複雜化你的依賴是沒有意義的。

相關問題