Java

[Gradle] 궁금한 Gradle Declaring Repositories

Yukart 2023. 8. 9. 21:35
반응형

Repository 선언

Declaring repositories

 

Declaring repositories

When searching for a module in a repository, Gradle, by default, checks for supported metadata file formats in that repository. In a Maven repository, Gradle looks for a .pom file, in an ivy repository it looks for an ivy.xml file and in a flat directory r

docs.gradle.org

  • Gradle 빌드는 대표적으로 MavenCentral 과 Google Android 공개된 Repository에 접근하여 종속성을 다운로드 한다.
  • 실제로도 프로젝트를 하다보면 위 2개의 Repository 외에는 선언할 일이 없었다.
repositories {
    mavenCentral()
    google()
}
  • 일부 종속성은 특정 한 Repository에 접근 가능하고 다른 Repository 에서는 접근이 불가능 할 때 유용하다.
  • 이 때, 선언 순서는 Gradle이 런타임 도중 종속성을 확인하는 순서를 결정해준다.
repositories {
    mavenCentral()
    maven {
        url = uri("<https://repo.spring.io/release>") // Gradle 런타임 Check 순서 1
    }
    maven {
        url = uri("<https://repository.jboss.org/maven2>") // Gradle 런타임 Check 순서 2
    }
}

지원되는 Repository 전송 프로토콜

file none  
http username/password https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes
https username/password https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes
sftp username/password https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes
s3 access key/secret key/session token or Environment variables https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:s3-repositories
gcs https://developers.google.com/identity/protocols/application-default-credentials sourced from well known files, Environment variables etc. https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:gcs-repositories

RepositoryHandler API

  • RepositoryHandler는 build.gradle 파일에서 선언하는 실제 코드를 읽고 처리한다. 

Method Description

flatDir(configureClosure) 여러 로컬 디렉토리에서 종속성을 찾을 저장소를 추가하고 구성합니다.
flatDir(args) 아티팩트에 대한 여러 디렉토리를 조사하는 해결 프로그램을 추가합니다.
flatDir(action) 여러 로컬 디렉토리에서 종속성을 찾을 저장소를 추가하고 구성합니다.
google() Google의 Maven 저장소에서 종속성을 찾는 저장소를 추가합니다.
google(action) Google의 Maven 저장소에서 종속성을 찾는 저장소를 추가합니다.
gradlePluginPortal() Gradle Central Plugin Repository에서 종속성을 찾는 저장소를 추가합니다.
gradlePluginPortal(action) Gradle Central Plugin Repository에서 종속성을 찾는 저장소를 추가합니다.
ivy(closure) Ivy 저장소를 추가하고 구성합니다. 
ivy(action) Ivy 저장소를 추가하고 구성합니다.
jcenter() 더 이상 사용되지 않음.
jcenter(action) 더 이상 사용되지 않음.
maven(closure) Maven 저장소를 추가하고 구성합니다.
maven(action) Maven 저장소를 추가하고 구성합니다.
mavenCentral() Maven 중앙 리포지토리에서 종속성을 찾는 리포지토리를 추가합니다. 이 저장소에 액세스하는 데 사용되는 URL은 https://repo.maven.apache.org/maven2/.
mavenCentral(args) Maven 중앙 리포지토리에서 종속성을 찾는 리포지토리를 추가합니다. 이 저장소에 액세스하는 데 사용되는 URL은https://repo.maven.apache.org/maven2/.
mavenCentral(action) Maven 중앙 리포지토리에서 종속성을 찾는 리포지토리를 추가합니다. 이 저장소에 액세스하는 데 사용되는 URL은 https://repo.maven.apache.org/maven2/.
mavenLocal() 로컬 Maven 캐시에서 종속성을 찾는 리포지토리를 추가합니다. 실제로 mavenLocal() 로 세팅 될 경우 콘텐츠가 변경되지 않을 수 있다는 보장이 없기 때문에 Gradle은 캐시를 하지 않습니다. 따라서 빌드 성능에 영향을 줄 수도 있음
mavenLocal(action) 로컬 Maven 캐시에서 종속성을 찾는 리포지토리를 추가합니다. 실제로 mavenLocal() 로 세팅 될 경우 콘텐츠가 변경되지 않을 수 있다는 보장이 없기 때문에 Gradle은 캐시를 하지 않습니다. 따라서 빌드 성능에 영향을 줄 수도 있음

 

반응형