{"meta":{"title":"Создание и тестирование Java с помощью Gradle","intro":"Узнайте, как создать рабочий процесс непрерывной интеграции (CI) в GitHub Actions, чтобы создать и протестировать свой Java-проект с помощью Gradle.","product":"GitHub Actions","breadcrumbs":[{"href":"/ru/actions","title":"GitHub Actions"},{"href":"/ru/actions/tutorials","title":"Учебники"},{"href":"/ru/actions/tutorials/build-and-test-code","title":"Сборка и тестирование кода"},{"href":"/ru/actions/tutorials/build-and-test-code/java-with-gradle","title":"Java с Gradle"}],"documentType":"article"},"body":"# Создание и тестирование Java с помощью Gradle\n\nУзнайте, как создать рабочий процесс непрерывной интеграции (CI) в GitHub Actions, чтобы создать и протестировать свой Java-проект с помощью Gradle.\n\n## Введение\n\nВ этом руководстве показано, как создать рабочий процесс с непрерывной интеграцией (CI) для вашего Java-проекта с использованием системы сборки Gradle. Создаваемый рабочий процесс позволит увидеть, когда фиксации в запросе на вытягивание вызывают сбои в сборке или тестировании ветви по умолчанию; этот подход поможет убедиться, что ваш код всегда работоспособен. Рабочий процесс CI можно расширить для кэширования файлов и отправки артефактов из запуска рабочего процесса.\n\nGitHub-размещенные средства запуска имеют кэш средств с предварительно установленным программным обеспечением, которое включает Java комплекты средств разработки (JDKs) и Gradle. Список программного обеспечения и предварительно установленных версий JDK и Gradle см. в разделе [Средства выполнения тестов, размещенные в GitHub](/ru/actions/concepts/runners/github-hosted-runners#preinstalled-software-for-github-owned-images).\n\n## Необходимые компоненты\n\nВы должны быть знакомы с YAML и синтаксисом для GitHub Actions. Дополнительные сведения см. в разделе:\n\n* [Синтаксис рабочего процесса для GitHub Actions](/ru/actions/reference/workflows-and-actions/workflow-syntax)\n* [Написание рабочих процессов](/ru/actions/how-tos/write-workflows)\n\nРекомендуем иметь базовое понимание Java и фреймворка Gradle. Дополнительные сведения см. в руководстве [](https://docs.gradle.org/current/userguide/userguide.html)пользователя Gradle.\n\n## Использование шаблона рабочего процесса Gradle\n\nЧтобы быстро приступить к работе, добавьте шаблон рабочего процесса в `.github/workflows` каталог репозитория.\n\nGitHubпредоставляет шаблон рабочего процесса для Gradle, который должен работать для большинства Java с проектами Gradle. В последующих разделах этого руководства приведены примеры настройки этого шаблона рабочего процесса.\n\n1. На GitHubперейдите на главную страницу репозитория.\n\n2. Под именем репозитория щелкните **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-play\" aria-label=\"play\" role=\"img\"><path d=\"M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z\"></path></svg> Actions**.\n\n   ![Снимок экрана: вкладки для репозитория github/docs. Вкладка \"Действия\" выделена оранжевым контуром.](/assets/images/help/repository/actions-tab-global-nav-update.png)\n\n3. Если в вашем репозитории уже используется рабочий процесс, нажмите кнопку **Создать рабочий процесс**.\n\n4. На странице \"Выбор рабочего процесса\" показан выбор рекомендуемых шаблонов рабочих процессов. Поискайте «Java with Gradle».\n\n5. В рабочем процессе «Java с Gradle» нажмите **Configure**.\n   Этот рабочий процесс выполняет следующие действия:\n\n6. Извлекает копию репозитория проекта.\n\n7. Настраивает JDK Java.\n\n8. Настраивает среду Gradle. Действие [`gradle/actions/setup-gradle`](https://github.com/gradle/actions) заботится о состоянии кэширования между выполнением рабочего процесса и содержит подробную сводку по всем выполнениям Gradle.\n\n9. Шаг \"Сборка с Gradle\" выполняет `build` задачу с помощью оболочки [](https://docs.gradle.org/current/userguide/gradle_wrapper.html)Gradle.\n\n10. Измените рабочий процесс по мере необходимости. Например, измените версию Java.\n\n    > \\[!NOTE]\n    >\n    > * Этот шаблон рабочего процесса содержит действие, которое не сертифицировано.GitHub Действия, предоставляемые сторонними сторонами, регулируются отдельными условиями обслуживания, политикой конфиденциальности и документацией по поддержке.\n    > * При использовании действий со стороны сторонних производителей следует использовать версию, указанную с помощью фиксации SHA. Если действие будет изменено и вы хотите использовать более новую версию, необходимо обновить SHA. Вы можете указать версию, ссылаясь на тег или ветвь, однако действие может измениться без предупреждения. Дополнительные сведения см. в разделе [Справочник по безопасному использованию](/ru/actions/reference/security/secure-use#using-third-party-actions).\n\n11. Щелкните **Зафиксировать изменения**.\n\n    Файл `gradle.yml` рабочего процесса добавляется в `.github/workflows` каталог вашего репозитория.\n\n### Указание версии и архитектуры Java\n\nШаблон рабочего процесса настраивает `PATH` содержащий OpenJDK 8 для платформы x64. Если вы хотите использовать другую версию Java или выбрать другую архитектуру (`x64` или `x86`), можно использовать действие `setup-java` для выбора другой среды выполнения Java.\n\nНапример, чтобы использовать JDK версии 11, предоставляемой Adoptium для платформы x64, можно выполнить действие `setup-java` и установить параметры `java-version`,`distribution` и `architecture` на `'11'`, `'temurin'` и `x64`.\n\n```yaml copy\nsteps:\n  - uses: actions/checkout@v6\n  - name: Set up JDK 11 for x64\n    uses: actions/setup-java@v4\n    with:\n      java-version: '11'\n      distribution: 'temurin'\n      architecture: x64\n```\n\nДополнительные сведения см. в описании действия [`setup-java`](https://github.com/actions/setup-java).\n\n## Создание и тестирование кода\n\nВы можете использовать те же команды, которые используются для создания и тестирования кода в локальной среде.\n\nШаблон рабочего процесса будет выполнять `build` задачу по умолчанию. В конфигурации Gradle по умолчанию эта команда скачивает зависимости, выполняет сборку классов, проводит тесты и упаковывает классы в распространяемый формат, например в JAR-файл.\n\nЕсли вы используете другие команды для сборки проекта или хотите выполнить другую задачу, это можно указать. Например, может потребоваться выполнить задачу, настроенную `package` в файле `ci.gradle` .\n\n```yaml copy\n# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.\n# Они предоставляются сторонним поставщиком, и на них распространяются\n# отдельные условия обслуживания, политика конфиденциальности и поддержка\n# документации.\nsteps:\n  - uses: actions/checkout@v6\n  - uses: actions/setup-java@v4\n    with:\n      java-version: '17'\n      distribution: 'temurin'\n\n  - name: Setup Gradle\n    uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2\n\n  - name: Build with Gradle\n    run: ./gradlew -b ci.gradle package\n```\n\n## Кэширование зависимостей\n\nЗависимости сборки можно кэшировать, чтобы ускорить выполнение рабочего процесса. После успешного выполнения `gradle/actions/setup-gradle` кэширует важные части домашнего каталога пользователя Gradle. При последующих запусках заданий данные из кэша восстанавливаются, так что скрипты сборки не нужно перекомпилировать, а зависимости не нужно скачивать из удаленных репозиториев пакетов.\n\nПри использовании действия `gradle/actions/setup-gradle` кэширование включено по умолчанию. Дополнительные сведения см. в статье [`gradle/actions/setup-gradle`](https://github.com/gradle/actions/blob/main/setup-gradle/README.md#caching-build-state-between-jobs).\n\n## Упаковка данных рабочего процесса в виде артефактов\n\nПосле успешной работы сборки и прохождения тестов, возможно, стоит загрузить полученные пакеты Java как артефакт сборки. Полученные пакеты будут храниться как часть выполнения рабочего процесса и их можно будет скачать. Артефакты помогут вам протестировать и отладить запросы на вытягивание в локальной среде до их слияния. Дополнительные сведения см. в разделе [Хранение и предоставление общего доступа к данным с артефактами рабочего процесса](/ru/actions/tutorials/store-and-share-data).\n\nКак правило, Gradle создает выходные файлы, такие как JAR, EAR или WAR, в каталоге `build/libs`. Содержимое этого каталога можно передать с помощью действия `upload-artifact`.\n\n```yaml copy\n# Этот рабочий процесс использует действия, которые не сертифицированы GitHub.\n# Они предоставляются сторонним поставщиком, и на них распространяются\n# отдельные условия обслуживания, политика конфиденциальности и поддержка\n# документации.\nsteps:\n  - uses: actions/checkout@v6\n  - uses: actions/setup-java@v4\n    with:\n      java-version: '17'\n      distribution: 'temurin'\n\n  - name: Setup Gradle\n    uses: gradle/actions/setup-gradle@017a9effdb900e5b5b2fddfb590a105619dca3c3 # v4.4.2\n\n  - name: Build with Gradle\n    run: ./gradlew build\n\n  - name: Upload build artifacts\n    uses: actions/upload-artifact@v4\n    with:\n      name: Package\n      path: build/libs\n```"}