Gradle: 클래스 경로와 컴파일 종속성의 차이점은 무엇입니까?
프로젝트에 의존관계를 추가할 때 어떤 접두사를 붙여야 할지 잘 모르겠습니다."classpath"
또는"compile".
예를 들어 아래 종속성은 컴파일 시간 또는 클래스 경로 중 어느 것이어야 합니까?
또한 어플리케이션 build.gradle과 모듈 고유의 build.gradle 중 어느 쪽에 있어야 합니까?
현재 build.gradle(어플리케이션레벨):
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'org.hibernate:hibernate-core:5.0.5.Final'
compile 'mysql:mysql-connector-java:5.1.38'
}
buildscript 자체에 실행이 필요한 경우 classpath를 사용합니다.
프로젝트를 실행해야 하는 경우 컴파일을 사용하십시오.
그buildscript{}
block은 build.gradle 자체를 위한 것입니다.
다중 프로젝트 빌딩의 경우 최상위 빌드 파일은 루트 프로젝트용이며, 특정 빌드 파일은 하위 프로젝트(모듈)용입니다.
모든 하위 프로젝트/모듈에 공통 구성 옵션을 추가할 수 있는 최상위 빌드 파일입니다.
어플리케이션 의존관계를 최상위 빌드파일에 배치하지 마십시오.각 모듈의 build.gradle 파일에 속합니다.
제 추측으로는 당신이 말하는 건compile
그리고.classpath
의 범위 내에서dependencies {}
차단할 경우 종속성 구성입니다.
Configuration은 단순히 이름 있는 의존관계 세트입니다.
그compile
설정은 Java 플러그인으로 작성됩니다.그classpath
Configuration은 일반적으로 에서 볼 수 있습니다.buildSrc {}
build.gradle 자체에 대한 종속성을 선언할 필요가 있는 블록(플러그인의 경우 등)
내 말이 맞다면 넌 혼란스러워Project.dependencies
스크립트 블록과Project.buildscript.dependencies
스크립트 블록(이 질문에 도달했을 때와 마찬가지로)을 설정합니다.
제가 찾은 걸로 대답해 볼게요.
내 생각에 당신은 이미 그 일에 익숙해야 할 것 같다.Project.dependencies
스크립트 블록이 블록에서는, 소스코드에 필요한 의존 관계를 선언합니다.프로젝트에 필요한 의존성을 선언하는 방법은 여러 가지가 있습니다.그래들 튜토리얼 참조: 종속성 유형.이 문제와 가장 관련이 있는 부분만 언급하겠습니다.
compile 'org.hibernate:hibernate-core:5.0.5.Final'
는 모듈 의존성 선언입니다.컴파일 컨피규레이션(현재는 실장 컨피규레이션에서 권장되지 않음)은 의 키워드에 불과합니다.Implementation only dependencies.
종속성 유형을 설명하는 키워드가 아닙니다(여기에서는 모듈, 파일, 프로젝트 등 튜토리얼에 정의된 세 가지 유형을 따릅니다).
그라들 튜토리얼: 빌드 로직의 구성에는 다음과 같은 내용이 있습니다.
빌드 스크립트에서 외부 라이브러리를 사용해야 하는 경우 빌드 스크립트 자체의 스크립트 클래스 경로에 해당 라이브러리를 추가할 수 있습니다.이를 수행하려면 buildscript() 메서드를 사용하여 빌드 스크립트 클래스 경로를 선언하는 닫힘을 전달합니다.
예를 들어 Java 컴파일클래스 패스를 선언하는 것과 같은 방법입니다.프로젝트 종속성을 제외하고 종속성 유형에 설명된 종속성 유형을 사용할 수 있습니다.
빌드 스크립트 클래스 경로를 선언한 후에는 클래스 경로의 다른 클래스와 마찬가지로 빌드 스크립트의 클래스를 사용할 수 있습니다.
이제 당신에게 일이 분명해졌으면 좋겠어요.
★★★★★★★★★★★★★★★★ classpath "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
로 방법을 정하고 있습니다.com.android.tools.build:gradle:${Versions.android_gradle_plugin}
이는 프로젝트의 소스가 아닌 빌드 스크립트 자체에서 사용되는 모듈 종속성입니다.
★★★★★★★★★★★★★★★★★★★★★에서는,compile 'org.hibernate:hibernate-core:5.0.5.Final'
컴파일 구성을 사용하여 프로젝트에 필요한 모듈 의존성을 선언합니다.
;dr: 더classpath
,compile
, , , , 입니다.implementation
는 다른 상황에서 의존관계에 대해 사용할 수 있는 모든 키워드입니다.전자는 빌드 스크립트에 종속성을 전달할 때 사용되며 후자는 선언할 수 있는 구성 중 하나입니다.
안드로이드:
classpath in project build.gradle : classpath 이후의 구현은 빌드 스크립트에서 사용되는 gradle 자체에서만 사용됩니다.따라서 프로젝트 build.gradle classpath 'retrofit...'에 구현(Retrofit 등)을 추가하면 코드로 수정이 되지 않습니다!!왜냐하면--- 내 코드는 볼 수 없고 빌드 스크립트만 볼 수 있기 때문입니다.
app build.gradle 구현 - 코드 사용 가능한 구현을 추가합니다!!
언급URL : https://stackoverflow.com/questions/34286407/gradle-what-is-the-difference-between-classpath-and-compile-dependencies
'programing' 카테고리의 다른 글
클래스가 Java에서 인터페이스를 구현하는지 여부를 확인합니다. (0) | 2022.10.08 |
---|---|
PyCharm은 왜 방법을 정적으로 바꾸려고 제안합니까? (0) | 2022.10.08 |
JavaScript에서 어레이를 루프합니다. (0) | 2022.10.08 |
"in 절" 내의 MySQL 항목 수 (0) | 2022.10.08 |
스크롤된 후 화면 상단에 div를 고정하려면 어떻게 해야 합니까? (0) | 2022.10.08 |