2017-08-25 32 views
0

問題的第一部分是爲什麼在eclipse中看不到Jboss內置的hibernate jar? Q關於圖書館部署的最佳實踐

從PHP Web開發背景到Java EE並面臨使用我的代碼運輸庫的挑戰。許多jar讓代碼太大,我覺得這不是處理我的項目依賴關係的最佳方式,所以開始使用Maven作爲依賴管理器(在php中使用composer)。這留下了如果不使用maven最佳實踐的問題。下面最好問一下。

第二部分

使用應用程序服務器來學習並在其上,其測試的JBoss EAP 7.0。我看到它帶有hibernate核心jar文件,所以我認爲我不需要下載hibernate實現並將其導入到我的項目中。問題是,在eclipse中,即使我導入了服務器庫,也沒有看到這些類。

現在問題看起來部分分成,這裏是他們:

  • 除了使用像Maven的依賴管理,這將是最好的做法航運庫我的代碼?說開源或編碼爲商業公司的情況。

閱讀有關單獨分離罐子並使用AS導入它們或將罐子放置在服務器結構中以使它們由AS提供的建議。但我不知道這是否是最佳選擇。

  • 關於到JBoss Hibernate中,我導入服務器庫,但無法找到休眠核心的圖像

jars provided by JBoss EAP

所以導入org.hibernate.SessionFactory實例例如沒有解決英寸這裏的解決方案是什麼?難道我不應該不是因爲它是由JBoss提供的嗎?或者至少在使用Maven的情況下,它會與提供的子句?

  • 最後一個問題,derby jars附帶JDK,我需要在我的項目中手動將它們添加到eclipse中,以便在部署時將它們運送到內部。這裏最好的做法是什麼? ....將罐子複製到我的項目中,將項目指向我的系統上罐子的位置,使用具有指向的「提供」子句的maven或僅使用maven將其僅導入它們。

注:包括休眠,德比,只是爲了學習和測試EJB &記錄的代碼,如果我下載手動冬眠罐子,複製德比罐子從JDK文件夾EJB &記錄&使用服務器庫運行完全正常。

回答

1

關於maven的部分:

你應該definelty使用Maven管理項目依賴條件。它是java世界的標準。如果你想嘗試一些不同的東西,你可以使用Gradle,但maven更簡單。

關於如何運送你的應用程序:

當你想提供您的應用程序,可以將其打包爲具有所有neccesary依賴條件的單個脂肪罐子。這樣,你只能發送一個罐子,你的應用程序可以使用java -jar ... 開始看看在maven shade plugin

關於休眠:

裏面你的pom.xml你應該增加有關休眠的依賴。這樣,日食錯誤將被固定

<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-core</artifactId> 
    <version>5.2.10.Final</version> 
    <scope>provided</scope> 
</dependency> 

關於德比:

您也可以在德比添加您的POM內運行時依賴性:

<dependency> 
    <groupId>org.apache.derby</groupId> 
    <artifactId>derby</artifactId> 
    <version>10.13.1.1</version> 
    <scope>runtime</scope> 
</dependency> 
+0

關於Hibernate中,加入作爲在pom.xml中的依賴將導致下載jar吧?包裝時,它會與它一起打包嗎?爲什麼這種方法即使它與JBoss EAP一起呢? – Anddo

+1

@Anddo更新了答案,自JBoss EAP包含它以來,hibernate依賴性需要提供範圍。提供的範圍是編譯時間。 – yamenk