Hibernate ORM은 Java를 위한 강력한 객체/관계형 매핑 솔루션이며 애플리케이션, 라이브러리 및 프레임워크에 대한 지속성 논리를 쉽게 개발할 수 있게 해줍니다.
Hibernate는 Java의 객체/관계형 지속성을 위한 표준 API인 JPA를 구현하지만 사양을 넘어서는 광범위한 기능 및 API 세트도 제공합니다.
자세한 내용은 Hibernate.org를 참조하세요.
Hibernate는 CI 요구 사항에 대해 Jenkins와 GitHub Actions를 모두 사용합니다. 보다
젠킨스 채용
GitHub 작업 채용 정보
빌드에는 최소 Java 11, 최대 Java 17이 필요합니다.
Hibernate는 Gradle을 빌드 도구로 사용합니다. Gradle을 처음 사용하는 경우 아래 Gradle Primer 섹션을 참조하세요.
기여자는 기여 가이드를 읽어야 합니다.
IntelliJ 또는 Eclipse를 개발 환경으로 설정하기 위한 가이드를 참조하세요.
Gradle 빌드 도구에는 놀라운 문서가 있습니다. 특히 꼭 필요한 2가지:
Gradle 사용자 가이드는 Gradle의 모든 기능을 설명하는 주제별 접근 방식을 따른다는 점에서 일반적인 사용자 가이드입니다.
Gradle DSL 가이드는 독특하고 Gradle의 특정 측면을 신속하게 파악하는 데 탁월합니다.
Gradle을 처음 접하는 개발자와 기여자가 빠르게 생산성을 높이기 위해 알아야 할 기본 사항을 다룹니다.
메모 | 프로젝트는 Gradle Wrapper를 정의합니다. 섹션의 나머지 부분에서는 래퍼를 통한 실행을 가정합니다. |
Gradle은 빌드 작업(Ant 대상 또는 Maven 단계/목표와 동일) 개념을 사용합니다. 다음을 통해 사용 가능한 작업 목록을 얻을 수 있습니다.
Gradle 작업
모든 모듈에서 작업을 실행하려면 루트 디렉터리에서 해당 작업을 수행하면 됩니다. Gradle은 각 하위 프로젝트를 방문하고 하위 프로젝트가 정의한 경우 해당 작업을 실행합니다. 특정 모듈에서 작업을 실행하려면 다음 중 하나를 수행하세요.
해당 모듈 디렉토리로 cd
넣고 작업을 실행하십시오.
"작업 경로"의 이름을 지정합니다. 예를 들어 루트 디렉터리에서 hibernate-core 모듈에 대한 테스트를 실행하려면 gradle hibernate-core:test
라고 말할 수 있습니다.
Hibernate를 구축하는데 사용할 수 있는 일반적인 작업은 다음과 같습니다:
build - 이 프로젝트를 어셈블(jar)하고 테스트합니다.
compile - 기본 및 테스트의 리소스 준비를 포함하여 모든 컴파일 작업을 수행합니다.
jar - 컴파일된 모든 클래스가 포함된 jar 아카이브를 생성합니다.
test - 테스트를 실행합니다.
PublishToMavenLocal - 프로젝트 jar를 로컬 Maven 캐시(~/.m2/repository라고도 함)에 설치합니다. Gradle은 이를 절대 사용하지 않지만 다른 로컬 Maven 기반 빌드로 빌드를 테스트하는 데 유용할 수 있습니다.
clean - 빌드 디렉터리를 정리합니다.
특정 데이터베이스에 대한 테스트는 두 가지 방법으로 수행할 수 있습니다.
나중에…
Hibernate 빌드는 databases.gradle
에 여러 데이터베이스 테스트 "프로필"을 정의합니다. 이러한 프로필은 JVM 시스템 속성( -D
) 또는 Gradle 프로젝트 속성( -P
)으로 전달될 수 있는 db
빌드 속성을 사용하여 이름으로 활성화할 수 있습니다. 아래 예에서는 Gradle 프로젝트 속성 접근 방식을 사용합니다.
Gradle 클린 빌드 -Pdb=pgsql
IDE에서 테스트를 실행하려면 속성 확장이 발생하는지 확인해야 합니다. 다음 명령을 사용하십시오.
Gradle 클린 컴파일 -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 포스트그레SQL
인수를 생략하면 가능한 옵션 목록이 인쇄됩니다.
데이터베이스가 제대로 시작되면 _ci
접미사가 붙은 특수 프로필(예: PostgreSQL의 경우 pgsql_ci
사용하여 테스트를 실행할 수 있습니다. 시스템 속성 dbHost
사용하면 Docker 호스트의 IP 주소를 구성할 수 있습니다.
테스트 실행 명령은 다음과 같습니다.
./gradlew 테스트 -Pdb=pgsql_ci "-DdbHost=192.168.99.100"
다음 표에서는 로컬로 테스트할 수 있는 다양한 데이터베이스에 대한 명령 목록을 보여줍니다.
데이터 베이스 | docker_db.sh | Gradle 명령 |
---|---|---|
H2 | - | |
HSQLDB | - | |
아파치 더비 | - | |
MySQL | | |
마리아DB | | |
포스트그레SQL | | |
엔터프라이즈DB | | |
신탁 | | |
DB2 | | |
SQL 서버 | | |
사이베이스 ASE(jTDS) | | |
사이베이스 ASE(jConnect) | | |
SAP HANA | | |
바퀴벌레DB | | |
TiDB | | |
인포믹스 | | |
docker
에 의해 시작된 컨테이너를 중지하려면 다음 명령을 사용하십시오.
docker stop $container_name
podman
사용하는 경우 docker
podman
으로 대체하세요.
예를 들어 mariadb 컨테이너를 중지하려면
docker stop mariadb