Gradle 의 기본 사용
설정 이 간결 하 다.
Maven 은 pom.xml 로 관리 하고 jar 패키지 의 최소 5 줄 코드 를 도입 합 니 다.Gradle 은 한 줄 만 필요 합 니 다.
구축 속도 가 빠르다.
Gradle 은 daemon 방식 의 운행 을 지원 합 니 다.시작 속도 가 빠 르 고 daemon 기반 의 증분 구축 이 있 습 니 다.JVM 의 운행 을 충분히 이용 할 때 최적화 되 고 캐 시 데이터 구축 속도 보다 Maven 이 훨씬 빠 릅 니 다.
더 좋 은 유연성,확장 성
Gradle 은 Maven 등 구축 도구 에 비해 일련의 API 를 제공 하여 프로젝트 의 구축 과정 을 수정 하거나 맞 출 수 있 습 니 다.
기본 설정
로 컬 창고 주 소 를 설정 합 니 다기본 로 컬 창고 주 소 는~/.gradle 입 니 다.Windows 에 서 는 많은 CD 공간 을 차지 합 니 다.
환경 변수 설정,GRADLEUSER_HOME=/your/path
Maven 현지 창고 재 활용reposcories 에서 mavenLocal()을 설정 하면 됩 니 다.init.gradle 전역 설정 이 라면 아래 init.gradle 파일 을 참고 하 십시오.
Maven 로 컬 창고 찾기 경로:
(1)USER_HOME/.m2/settings.xml
(2)M2_HOME/conf/settings.xml
(3)USER_HOME/.m2/repository
국내 미 러 가속국내 에서 외국 창 고 를 방문 하 는 주소 가 매우 느 리 고 첫 번 째 방법 은 각 항목 에 reposcories 를 설치 하 는 것 이다.
repositories {
mavenLocal()
'maven(http://maven.aliyun.com/nexus/content/groups/public/)'
mavenCentral()
}
더 추천 하 는 방법 은 Maven 과 유사 한 settings.xml 전역 설정 입 니 다.이전 설정 의 GRADLEUSER_HOME 경로 에서 init.gradle 파일 을 추가 합 니 다.아래 설정 파일 에는 아 리 클 라 우 드 의 Gradle 프 록 시 를 사용 하여 jcenter,google,maven 창 고 를 지원 합 니 다.
gradle.projectsLoaded {
rootProject.allprojects {
buildscript {
repositories {
def JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
def NEXUS_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
println("buildscript ${repo.url} replaced by $JCENTER_URL.")
remove repo
}
else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
remove repo
}
else if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
remove repo
}
}
}
jcenter {
url JCENTER_URL
}
google {
url GOOGLE_URL
}
maven {
url NEXUS_URL
}
}
}
repositories {
def JCENTER_URL = 'https://maven.aliyun.com/repository/jcenter'
def GOOGLE_URL = 'https://maven.aliyun.com/repository/google'
def NEXUS_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
all { ArtifactRepository repo ->
if (repo instanceof MavenArtifactRepository) {
def url = repo.url.toString()
if (url.startsWith('https://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $JCENTER_URL."
println("buildscript ${repo.url} replaced by $JCENTER_URL.")
remove repo
}
else if (url.startsWith('https://dl.google.com/dl/android/maven2/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $GOOGLE_URL."
println("buildscript ${repo.url} replaced by $GOOGLE_URL.")
remove repo
}
else if (url.startsWith('https://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $REPOSITORY_URL."
println("buildscript ${repo.url} replaced by $REPOSITORY_URL.")
remove repo
}
}
}
jcenter {
url JCENTER_URL
}
google {
url GOOGLE_URL
}
maven {
url NEXUS_URL
}
}
}
}
3.최고의 실천다 중 모듈 설정
조금 큰 프로젝트 는 모듈 별로 개발 되 는데 Gradle 은 Maven 에 비해 IDEA 로 프로젝트 의 코드 를 실행 할 때 의존 하 는 다른 모듈 을 자동 으로 컴 파일 하 는 것 이 장점 입 니 다.
프로젝트 1 급 디 렉 터 리 에 settings.gradle 프로필 추가:
rootProject.name = 'my-roject-name'
include 'module1'
include 'module2'
그 중에서 module 1,module 2 는 서브 모듈 의 폴 더 이름 입 니 다.서브 모듈 에 서브 모듈 을 설정 하 는 build.gradle 이 필요 합 니 다.모듈 내 의존,예 를 들 어 module 2 는 module 1 에 의존 하고 module 2 의 build.gradle 설정 파일 에 추가 합 니 다.
dependencies {
compile project(":module1")
}
gradle.properties 프로필 추가 기본 프로필 지정
profile=dev
프로필 을 시작 하고 서로 다른 경로 의 설정 을 불 러 옵 니 다.build.gradle 에 설정 을 추가 합 니 다.
ext {
profile = project['profile']
}
sourceSets {
main {
resources {
srcDirs = ["src/main/resources/", "src/main/profiles/${profile}"]
}
}
}
명령 행 매개 변수 지정 profile:
gradle build -Pprofile=prod
gradle 프로젝트 초기 화gradle 를 설치 하고 프로젝트 의 최상 위 디 렉 터 리 에서 실행 합 니 다:
gradle init
현재 디 렉 터 리 에 pom.xml 이 있 으 면 Maven 프로젝트 에서 Gradle 프로젝트 를 초기 화 할 지 여 부 를 알려 줍 니 다.yes 리 턴 을 선택 하 십시오.매개 변수 문서:https://docs.gradle.org/current/userguide/build_init_plugin.html
bom 파일 도입
pom 파일 은 Maven 에서 매우 유용 한 기능 으로 여러 항목 의 버 전 번 호 를 통일 하 는 데 편리 합 니 다.Maven 에서 설정 하 는 방식 은 다음 과 같 습 니 다.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Gradle 에서 유사 한 동작 을 지원 하 는 플러그 인 이 있 습 니 다.
//
plugins {
id "io.spring.dependency-management" version "1.0.10.RELEASE"
}
// bom
dependencyManagement {
imports {
mavenBom 'org.springframework.boot:spring-boot-dependencies:${spring-boot.version}'
}
}
// bom,
dependencies {
implementation "org.springframework.boot:spring-boot-starter-web"
}
<parent>
<groupId>com.lesofn.blog</groupId>
<artifactId>test-parent</artifactId>
<version>0.0.1</version>
</parent>
Maven 의 parent 는 두 가지 역할 을 합 니 다.하 나 는 bom 과 유사 한 통일 관리 버 전 입 니 다.즉,parent 중의 dependency Management 이 고 다른 하 나 는 기본 jar 패키지 의 인용 입 니 다.즉,부모 pom 중의 dependencies 입 니 다.Gradle 에 서 는 위의 io.spring.dependency-management 플러그 인 을 통 해 유사 한 효 과 를 구현 할 수 있 습 니 다.
//
plugins {
id "io.spring.dependency-management" version "1.0.10.RELEASE"
}
// parent, maven dependencyManagement ,
dependencyManagement {
imports {
mavenBom 'com.lesofn.blog:test-parent:0.0.1'
}
}
// parent, maven dependencies
dependencies {
implementation 'com.lesofn.blog:test-parent:0.0.1'
}
총화위 설정 을 통 해 Gradle 개발 과정 에서 의 대부분의 문 제 를 기본적으로 커버 하 였 으 며,또 무슨 문제 가 있 으 면 댓 글 토론 을 환영 합 니 다.
이상 은 Gradle 의 기본 사용 에 대한 상세 한 내용 입 니 다.Gradle 사용 에 관 한 자 료 는 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin ReflectionReflection is a set of language and library features that allows for introspecting the structure of your own program at ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.