Hibernate ORM 是一個強大的 Java 物件/關聯映射解決方案,可輕鬆為應用程式、程式庫和框架開發持久性邏輯。
Hibernate 實作了 JPA,即 Java 中物件/關聯持久性的標準 API,而且還提供了一組超出規範的廣泛功能和 API。
請參閱 Hibernate.org 以了解更多資訊。
Hibernate 使用 Jenkins 和 GitHub Actions 來滿足其 CI 需求。看
詹金斯賈伯斯
GitHub 操作 職位
建置至少需要 Java 11,最多需要 Java 17。
Hibernate 使用 Gradle 作為其建置工具。如果您是 Gradle 新手,請參閱下面的Gradle 入門部分。
貢獻者應閱讀貢獻指南。
請參閱將 IntelliJ 或 Eclipse 設定為開發環境的指南。
Gradle 建置工具擁有令人驚嘆的文件。 2、特別是不可缺少的:
Gradle 使用者指南是典型的使用者指南,它遵循主題方法來描述 Gradle 的所有功能。
Gradle DSL 指南在快速掌握 Gradle 某些方面是獨特且出色的。
我們將介紹剛接觸 Gradle 的開發人員和貢獻者快速提高工作效率所需了解的基礎知識。
筆記 | 該專案定義了一個 Gradle Wrapper。本節的其餘部分將假定透過包裝器執行。 |
Gradle 使用建置任務的概念(相當於 Ant 目標或 Maven 階段/目標)。您可以透過以下方式取得可用任務的列表
分級任務
若要跨所有模組執行任務,只需從根目錄執行該任務即可。 Gradle 將存取每個子項目並執行該任務(如果子項目定義了該任務)。若要在特定模組中執行任務,您可以:
cd
進入該模組目錄並執行任務
命名“任務路徑”。例如,要從根目錄執行hibernate- core模組的測試,您可以說gradle hibernate-core:test
您在建置 Hibernate 時可能使用的常見任務包括:
build - 組裝(jar)並測試該項目
編譯- 執行所有編譯任務,包括從主程式和測試中暫存資源
jar - 產生包含所有已編譯類別的 jar 檔案
test - 運行測試
publishToMavenLocal - 將專案 jar 安裝到本機 Maven 快取(又稱 ~/.m2/repository)。請注意,Gradle 從不使用此功能,但它對於使用其他基於 Maven 的本機建置來測試您的建置非常有用。
clean - 清理建置目錄
針對特定資料庫的測試可以透過兩種不同的方式實現:
稍後推出...
Hibernate 建置在databases.gradle
中定義了幾個資料庫測試「設定檔」。這些設定檔可以使用db
建置屬性按名稱激活,該屬性可以作為 JVM 系統屬性 ( -D
) 或作為 Gradle 專案屬性 ( -P
) 傳遞。下面的範例使用 Gradle 專案屬性方法。
gradle clean build -Pdb = pgsql
若要從 IDE 執行測試,您需要確保發生屬性擴充。使用以下命令:
gradle clean 編譯-Pdb=pgsql
注意:如果您正在針對Maven 中心無法提供的JDBC 驅動程式執行測試,請務必將這些驅動程式新增至本機Maven 儲存庫快取(~/.m2/repository) 或(更好)將其新增至個人Maven 存儲庫伺服器
您可以對在databases.gradle
設定檔中配置的任何特定資料庫執行任何測試。
您所要做的就是執行以下命令:
./gradlew setDataBase -Pdb=pgsql
或者您可以使用快捷方式版本:
./gradlew sDB -Pdb=pgsql
您可以從您有興趣測試的模組或hibernate-orm
根資料夾中執行此操作。
然後,只需從 IDE 中選擇任何測試並照常運行即可。 Hibernate 將從setDataBase
Gradle 任務設定的hibernate.properties
檔案中選擇資料庫配置。
如果您有可用的 docker,您不必在本機安裝所有資料庫即可進行測試。腳本docker_db.sh
允許您啟動可用於測試的預先配置資料庫。
您所要做的就是執行以下命令:
./docker_db.sh postgresql
省略參數將列印可能選項的清單。
當資料庫正確啟動後,您可以使用帶有_ci
後綴的特殊設定檔執行測試,例如 PostgreSQL 的pgsql_ci
。透過使用系統屬性dbHost
您可以設定 docker 主機的 IP 位址。
運行測試的命令可能如下所示:
./gradlew測試-Pdb=pgsql_ci“-DdbHost=192.168.99.100”
下表列出了可在本機測試的各種資料庫的命令清單。
資料庫 | docker_db.sh | 搖籃命令 |
---|---|---|
氫2 | - | |
HSQL資料庫 | - | |
阿帕契德比 | - | |
MySQL | | |
瑪麗亞資料庫 |
| |
PostgreSQL | | |
企業資料庫 |
| |
甲骨文 |
| |
資料庫2 | | |
SQL伺服器 |
| |
Sybase ASE (jTDS) | | |
Sybase ASE (jConnect) | | |
SAP HANA | | |
蟑螂資料庫 |
| |
鈦資料庫 |
| |
資訊系統 |
| |
若要停止由docker
啟動的容器,請使用下列命令
docker stop $container_name
如果使用podman
請將podman
指令替換為docker
例如,停止 mariadb 容器
docker stop mariadb