2013-10-25 59 views
1

我有一個基於Maven的J2EE項目結構J2EE Web應用Utilities項目

Customer (root pom) 
    | 
    |------ WebTier (JSF 2/Primefaces) 
    | 
    |------ BusinessTier (EJB 3.*, interfaces, interface impl) 
    | 
    |------ PersistenceTier (JPA 2) 
    | 
    |------ CustomerEar 

現在我發現,我需要一個新的Java類或類處理基本程序 我想它不是好主意的最佳實踐將這個Utility類放在WebTier下,因爲Utilities也可以用於BusinessTier。 創建一個獨立的Java項目,實現必要的類並將這個jar包含在耳朵中是「最佳實踐」嗎?

回答

0

在這種情況下,很難嘗試證明「最佳實踐」,因爲這是一個非常特定於項目的問題。

添加一個「CommonLibrary」項目或類似WebTier和BusinessTier的依賴關係並沒有什麼天生的錯誤。事實上,我現在正在開展的項目幾乎完全是這種結構(使用一個共同的圖書館)。由於這是一個maven項目,只要確保CommonLibrary項目依賴範圍在Business/Web/Persistence層中設置爲「提供」,並在ear項目中設置爲「compile」即可。

例如在WebTier中,依賴關係爲:

<dependency> 
    <groupID>group.name</groupID> 
    <artifactID>common-library</artifactID> 
    <scope>provided</scope> 
</dependency> 

編輯:範圍將在Web層「提供」,因爲它將是.war。其他層次可以是罐子,因此範圍可以爲持久層和業務層「編譯」。

+0

你不能有罐子範圍爲提供,因爲這既不是JDK提供也不在服務器運行時 –

+0

感謝@pappu_kutty ,我已經更新了描述。我只是在想WebTier。 –

+0

@rusty_turkey我用原型maven-archetype-quickstart創建了新的maven項目,並將此jar包含在必要的依賴關係中。奇蹟般有效! –

0

根據我的經驗,我建議有實用單獨的項目文件夾,包括這是在以往任何時候需要

優勢

  1. 維護方便,因爲你需要一次更改代碼的jar 。

  2. 插件&當你需要時拔下插頭。

  3. 你可以有這個共同的和利用 其他項目。

例如

阿帕奇串UTIL

http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils.html

豆UTIL

http://commons.apache.org/proper/commons-beanutils/

+0

感謝您的快速回復。我會調查這兩個建議 –

相關問題