
Gradle로 Dependabot을 구성하는 방법
2022-10-03 last update
6 minutes reading dependabot maven github gradleGithub Dependabot이란 무엇입니까?
Dependabot는 종속성을 최신 상태로 유지하는 방법을 제공합니다. 구성에 따라 종속 파일에 오래된 종속성이 있는지 확인하고 PR을 개별적으로 엽니다. 그런 다음 요구 사항에 따라 PR을 검토하고 병합할 수 있습니다.
Gradle이 있는 Dependabot
Dependabot에는 Gradle에 대한 제한support이 있습니다. Dependabot은 리포지토리에서
build.gradle
또는 settings.gradle
를 찾은 다음 오래된 종속성을 검색하고 사용 가능한 업데이트를 기반으로 PR을 생성합니다.문제
이 두 파일 외부에서 종속성이 유지되는 경우 문제가 발생합니다. Dependabot ONLY 및 ONLY 스캔
build.gradle
또는 settings.gradle
. 대부분의 프로젝트는 이러한 파일에 버전을 포함하는 이 표준을 따르지만 나머지 프로젝트는 전혀 작동하지 않습니다.해결책
이 문제에 대한 해결 방법이 있습니다. 이 문제를 해결하려면 아래에 설명된 단계를 따르십시오.
dependencies.gradle
파일을 생성하여 모든 종속성을 추출합니다. 파일 이름은 HAS TO BEdependencies.gradle
여야 합니다. 그렇지 않으면 솔루션이 작동하지 않습니다. (version.gradle
도 지원하지 않습니다!)
ext {
// -- PLUGINS
springBootVersion = "2.5.5"
springDependencyManagementVersion = "1.0.11.RELEASE"
....
//-- DEPENDENCIES
....
springFoxBootVersion = "3.0.0"
hibernateVersion = "5.4.31.Final"
c3p0Version = "0.9.5.5"
postgresVersion = "42.2.10"
....
supportDependencies = [
springfox_boot_starter : "io.springfox:springfox-boot-starter:$springFoxBootVersion",
hibernate_entitymanager : "org.hibernate:hibernate-entitymanager:$hibernateVersion",
hibernate_core : "org.hibernate:hibernate-core:$hibernateVersion",
c3p0 : "com.mchange:c3p0:$c3p0Version"
hibernate_java8 : "org.hibernate:hibernate-java8:$hibernateVersion",
postgresql : "org.postgresql:postgresql:$postgresVersion",
....
]
}
build.gradle
사용 dependencies.gradle
buildscript {
apply from: 'dependencies.gradle'
}
plugins {
id 'org.springframework.boot' version "${springBootVersion}"
id 'io.spring.dependency-management' version "${springDependencyManagementVersion}"
....
}
dependencies {
....
implementation supportDependencies.springfox_boot_starter
implementation supportDependencies.hibernate_entitymanager
implementation supportDependencies.hibernate_core
implementation supportDependencies.c3p0
....
}
....
.github/dependabot.yml
파일을 사용하여 의존 로봇 지원을 프로젝트에 추가합니다.version: 2
updates:
- package-ecosystem: "gradle"
directory: "/"
schedule:
interval: "daily"
결론
Dependabot은 프로젝트가 최신 종속성을 갖도록 하는 놀라운 도구입니다. 그러나 종속성이 유지되지 않는 경우
build.gradle
또는 settings.gradle
Maven에 비해 Gradle의 지원이 제한됩니다.이 두 파일의 버전을 유지하지 않으려면 종속 로봇이 프로젝트를 스캔하고 종속성 문제를 찾을 수 있는 방식으로 gradle 파일을 조정할 수 있습니다.
Sumedh 에게 특별한 감사를 드립니다.