programing

Gradle: 클래스 경로와 컴파일 종속성의 차이점은 무엇입니까?

kingscode 2022. 10. 8. 16:59
반응형

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 플러그인으로 작성됩니다.classpathConfiguration은 일반적으로 에서 볼 수 있습니다.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

반응형