
CVE-2019-14900
Hibernate ORM — это библиотека, предоставляющая поддержку объектно-реляционного отображения (ORM) для приложений, библиотек и фреймворков.
Она также предоставляет реализацию спецификации JPA, которая является стандартной Java-спецификацией для ORM.
Это репозиторий исходного кода; см. Hibernate.org для дополнительной информации.
Для сборки требуется Java 8 JDK в качестве JAVA_HOME.
Вам понадобится Git для получения исходного кода.
Hibernate использует Gradle в качестве инструмента сборки. См. раздел Введение в Gradle ниже, если вы новичок в Gradle.
Участникам следует прочитать руководство по внесению вклада.
См. руководства по настройке IntelliJ или Eclipse в качестве среды разработки.
Ознакомьтесь с разделом Начало работы в CONTRIBUTING.md, чтобы начать работу с исходным кодом Hibernate.
Hibernate использует Jenkins для своих нужд CI. Проект непрерывно собирается при каждом пуше в вышестоящий репозиторий. В целом есть несколько различных заданий, все они видны по адресу http://ci.hibernate.org/view/ORM/
В этом разделе описываются некоторые основы, которые разработчикам и участникам, новым для Gradle, может понадобиться знать, чтобы быстро приступить к работе. Документация Gradle очень хороша; особенно два незаменимых руководства:
Для участников, которые не используют Gradle и не хотят его устанавливать, Gradle предлагает очень удобную функцию — обёртку (wrapper). Она позволяет запускать сборки Gradle без предварительно установленного дистрибутива Gradle без настройки. Hibernate настраивает обёртку Gradle за вас. Если вы предпочитаете использовать обёртку и не устанавливать Gradle (или хотите убедиться, что используете версию Gradle, предназначенную для старых сборок), просто используйте команду gradlew (или gradlew.bat) вместо gradle (или gradle.bat) в следующих обсуждениях. Обратите внимание, что gradlew доступен только в корневом каталоге проекта, поэтому в зависимости от вашей рабочей директории вам может потребоваться также скорректировать путь к gradlew.
В примерах используется синтаксис gradle, но просто замените gradlew (с правильным относительным путём) на gradle, если хотите использовать обёртку.
Ещё одна причина использовать gradlew — он использует точную версию Gradle, с которой должна работать сборка.
Gradle использует концепцию задач сборки (эквивалент целей Ant или фаз/целей Maven). Вы можете получить список доступных задач с помощью
gradle tasks
Чтобы выполнить задачу во всех модулях, просто выполните эту задачу из корневого каталога. Gradle посетит каждый подпроект и выполнит эту задачу, если подпроект её определяет. Чтобы выполнить задачу в конкретном модуле, вы можете либо:
cd в каталог этого модуля и выполнить задачу,gradle hibernate-core:test~/.m2/repository). Обратите внимание, что Gradle никогда не использует этот кэш, но это может быть полезно для тестирования вашей сборки с другими локальными Maven-сборками.Тестирование с конкретной базой данных может быть выполнено двумя способами:
Скоро...
Сборка Hibernate определяет несколько тестовых «профилей» баз данных в databases.gradle. Эти профили можно активировать по имени с помощью свойства сборки db, которое может быть передано либо как системное свойство JVM (-D), либо как свойство проекта Gradle (-P). Примеры ниже используют подход со свойством проекта Gradle.
gradle clean build -Pdb=pgsql
Чтобы запустить тест из вашей IDE, необходимо, чтобы раскрытие свойств произошло. Используйте следующую команду:
gradle clean compile -Pdb=pgsql
ПРИМЕЧАНИЕ: Если вы запускаете тесты с драйвером JDBC, который недоступен через Maven Central, обязательно добавьте эти драйверы в локальный кэш репозитория Maven (~/.m2/repository) или (лучше) добавьте его на личный сервер репозитория Maven.
Вы можете запустить любой тест на любой конкретной базе данных, настроенной в профиле databases.gradle.
Всё, что вам нужно сделать, — выполнить следующую команду:
gradlew setDataBase -Pdb=pgsql
или можно использовать сокращённую версию:
gradlew sDB -Pdb=pgsql
Вы можете сделать это из модуля, который вас интересует для тестирования, или из корневой папки hibernate-orm.
После этого просто выберите любой тест в IDE и запустите его как обычно. Hibernate возьмёт конфигурацию базы данных из файла hibernate.properties, который был настроен задачей Gradle setDataBase.