Gradle-종속성 관리
Gradle 빌드 스크립트는 프로젝트를 빌드하는 프로세스를 정의합니다. 각 프로젝트에는 일부 종속성과 일부 출판물이 포함되어 있습니다. 종속성은 다른 프로젝트의 필수 JAR 파일과 클래스 경로의 JDBC JAR 또는 Eh-cache JAR과 같은 외부 JAR과 같이 프로젝트 빌드를 지원하는 것을 의미합니다. 간행물은 테스트 클래스 파일과 같은 프로젝트의 결과물과 war 파일과 같은 빌드 파일을 의미합니다.
대부분의 모든 프로젝트는 독립적이지 않습니다. 소스 파일을 컴파일하고 테스트하려면 다른 프로젝트에서 빌드 한 파일이 필요합니다. 예를 들어 프로젝트에서 Hibernate를 사용하려면 클래스 경로에 Hibernate JAR을 포함시켜야합니다. Gradle은 몇 가지 특수 스크립트를 사용하여 다운로드해야하는 종속성을 정의합니다.
Gradle은 결과물을 어딘가에 구축하고 게시합니다. 게시는 사용자가 정의한 작업을 기반으로합니다. 파일을 로컬 디렉토리에 복사하거나 원격 Maven 또는 lvy 저장소에 업로드하거나 동일한 다중 프로젝트 빌드에서 다른 프로젝트의 파일을 사용할 수 있습니다. 작업을 게시하는 과정을 게시라고 부를 수 있습니다.
종속성 선언
종속성 구성은 종속성 집합을 정의 할뿐입니다. 이 기능을 사용하여 웹에서 다운로드하려는 외부 종속성을 선언 할 수 있습니다. 이것은 다음과 같은 다른 표준을 정의합니다.
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
testCompile group: 'junit', name: 'junit', version: '4.+'
}
종속성 구성
종속성 구성은 종속성 집합을 정의 할뿐입니다. 이 기능을 사용하여 웹에서 다운로드하려는 외부 종속성을 선언 할 수 있습니다. 이것은 다음과 같은 다른 표준 구성을 정의합니다.
Compile − 프로젝트의 생산 소스를 컴파일하는 데 필요한 종속성.
Runtime− 런타임시 프로덕션 클래스에 필요한 종속성. 기본적으로 컴파일 시간 종속성도 포함됩니다.
Test Compile− 프로젝트의 테스트 소스를 컴파일하는 데 필요한 종속성. 기본적으로 컴파일 된 프로덕션 클래스와 컴파일 시간 종속성이 포함됩니다.
Test Runtime− 테스트를 실행하는 데 필요한 종속성. 기본적으로 런타임 및 테스트 컴파일 종속성이 포함됩니다.
외부 종속성
외부 종속성은 종속성 유형 중 하나입니다. 이것은 현재 빌드 외부에서 빌드 된 일부 파일에 대한 종속성이며 Maven 중앙, 회사 Maven 또는 lvy 저장소 또는 디렉토리 I 로컬 파일 시스템과 같은 일종의 저장소에 저장됩니다.
다음 코드 조각은 외부 종속성을 정의하는 것입니다. 이 코드를build.gradle 파일.
dependencies {
compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}
외부 종속성은 외부 종속성을 선언하고 바로 가기 양식은 "그룹 : 이름 : 버전"과 같습니다.
저장소
외부 종속성을 추가하는 동안. Gradle은 저장소에서이를 찾습니다. 저장소는 그룹, 이름 및 버전별로 구성된 파일 모음입니다. 기본적으로 Gradle은 저장소를 정의하지 않습니다. 최소한 하나의 저장소를 명시 적으로 정의해야합니다. 다음 코드 스 니펫은 Maven 저장소를 정의하는 방법을 정의합니다. 이 코드를build.gradle 파일.
repositories {
mavenCentral()
}
다음 코드는 원격 Maven을 정의하는 것입니다. 이 코드를build.gradle 파일.
repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
아티팩트 게시
종속성 구성은 파일 게시에도 사용됩니다. 이러한 게시 된 파일을 아티팩트라고합니다. 일반적으로 플러그인을 사용하여 아티팩트를 정의합니다. 그러나 Gradle에 아티팩트를 게시 할 위치를 알려야합니다. 아카이브 업로드 태스크에 리포지토리를 연결하여이를 수행 할 수 있습니다. Maven 저장소 게시에 대한 다음 구문을 살펴보십시오. 실행하는 동안 Gradle은 프로젝트 요구 사항에 따라 Pom.xml을 생성하고 업로드합니다. 이 코드를build.gradle 파일.
apply plugin: 'maven'
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file://localhost/tmp/myRepo/")
}
}
}