Gradle에서 transitive = true는 정확히 무엇을 하는가 (w.r.t. crashlytics)?
Gradle은 무엇인가?transitive = true
정확히 해?Gradle 문서에서는 명확하지 않다.이것은 의 맥락에 있다.compile
안쪽에build.gradle
. 내 경우엔 안드로이드의 크래시틱스에 의존하고 있다.
compile('com.crashlytics.sdk.android:crashlytics:2.2.2@aar') {
transitive = true;
}
몇 개의 Gradle 문서(여기 및 여기)는 "전환"이 기본적으로 true로 설정되어 있음을 암시한다.제거 중transitive = true
transitive 종속성이 유입되지 않는 결과(특히)KitGroup
).
class file for io.fabric.sdk.android.KitGroup not found
의사들은 그것이 사실이라고 말하지만 실제 행동은 정반대인 것 같다.
나는 Gradle 2.2.1을 운영하고 있다.아마도 2.2와 2.4 사이에서 행동이 바뀐 것 아닐까?
편집: 그라들(gradle)을 사용하는 aar 라이브러리에 대해 관련 Transitive 종속성이 확인되지 않음
현재 사용 중인 데이터@aar
표기법
그것은 당신이 단지 다운받기를 원한다는 것을 의미한다.aar
아티팩트, 전이적 의존성 없음.
공식 설명서의 Gradle에서 종속성 관리를 확인할 수 있다.특히:
아티팩트 전용 표기법은 지정된 확장자의 아티팩트 파일만 다운로드하는 모듈 종속성을 생성한다.기존 모듈 설명자는 무시된다.
사용@aar
종속성을 다운로드하려면 표기법을 추가하십시오. transitive=true
.
나는 @aar를 생략하는 것이 타동적인 속성을 추가하지 않고 효과가 있을 것으로 예상한다.
좀 더 일반적인 참고 사항:설정transitive = false
에서crashlytics
라이브러리 - gradle이 필요한 모든 라이브러리를 무시하게 함crashlytics
(="실행 라이브러리")를 다운로드하여 연결하지 마십시오.
필요한 라이브러리를 프로젝트에 수동으로 추가하거나 다른 종속성에 의해 추가된 다른 임시 라이브러리에 의존하십시오.
그라들 기본값은transitive = true
.
예 및 전체 설명: http://www.devsbedevin.net/android-understanding-gradle-dependencies-and-resolving-conflicts/
내 생각엔 당신이 언급하는 Crashlytics 아티팩트가 수동으로 종속성을 transitive가 아닌 것으로 명시하고 있는 것 같다.transitive=false
() 기본적으로 이러한 종속성을 가져오도록 강요되지 않도록 하십시오.그래서 정반대의 행동을 보이는 겁니다.예를 들어 일부 개발자는 Google Play Services 또는 Crashlytics가 사용할 수 있는 모든 서비스를 도입하지 않을 수 있다.
그래서, 그랜들은 더 이상 의존성을 끌어들이지 않고, 그랜들은 그 의존성을 쌓지 못한다.필요한 경우 수동으로 종속성을 지정할 수 있다.
현재 더 큰 문제는 크래시틱스 유물을 직접 참조해서는 안 된다는 것이다. 따라서 패브릭을 사용하여 크래시틱스를 도입해야 한다. https://dev.twitter.com/fabric/android/integrating
이 종속성을 해당 전이적 종속성을 포함하거나 제외할 것인지 여부를 설정하십시오.이 의존성에 속하는 유물은 다른 유물에 의존할 수 있다.후자를 전이적 종속성이라고 한다.
Gradle은 기본적으로 전이적 의존성을 따른다.특정 라이브러리에 대해 이 설정을 해제하려면 transitive 플래그를 사용하십시오.
transitive 플래그의 값을 false로 변경하면 transitive 종속성의 다운로드가 방지되므로 필요한 것은 무엇이든 직접 추가해야 한다.모듈 병만 원하는 경우 추가 종속성 없이 이 병도 지정할 수 있다.
transitive
변덕을 다스리다Gradle은 일반적으로 transitive로 기본 설정된다. 단, 그렇지 않은 경우는 제외한다.transitivity와 classifier가 있는 버그가 있다. https://issues.gradle.org/browse/GRADLE-3188을 참조하십시오.
'Programing' 카테고리의 다른 글
구성 요소가 불필요한 종속성을 수집하지 못하도록 하는 방법 (0) | 2022.04.24 |
---|---|
"정적"이나 "외부"가 없는 "인라인"이 C99에서 유용할 수 있는가? (0) | 2022.04.24 |
vue 구성 요소 데이터가 함수여야 하는 이유 (0) | 2022.04.24 |
수신된 데이터를 Vue 저장소에 커밋하는 방법? (0) | 2022.04.24 |
너가 가장 좋아하는 C프로그래밍 트릭은 뭐니? (0) | 2022.04.24 |