내 프로젝트에서 사용하지 않는 종속성을 찾고 싶었습니다. Maven과 같이 Gradle에 이에 대한 기능이 있습니까?
내 프로젝트에서 사용하지 않는 종속성을 찾고 싶었습니다. Maven과 같이 Gradle에 이에 대한 기능이 있습니까?
답변:
2017 년 6 월 에는을 릴리스
4.0.0 version
하고 루트 프로젝트 이름"gradle-lint-plugin"
을"nebula-lint-plugin"
. 또한 unused-dependency 에 Android 지원을 추가했습니다 .
2016 년 5 월 Gradle은 원치 않는 종속성을 찾고 제거하기 위해 Gradle lint 플러그인 을 구현했습니다.
Gradle Lint 플러그인은 Gradle 스크립트 및 관련 파일의 오용 또는 지원 중단 패턴을 식별하고보고하기위한 플러그 가능하고 구성 가능한 linter 도구입니다.
이 플러그인에는 다양한 규칙이 있습니다. 사용하지 않는 종속성 규칙 은 그중 하나입니다. 세 가지 특성이 있습니다.
규칙을 적용하려면 다음을 추가하십시오.
gradleLint.rules += 'unused-dependency'
미사용 종속성 규칙 에 대한 자세한 내용은 마지막 부분에 나와 있습니다.
Gradle Lint 플러그인을 적용하려면 :
buildscript { repositories { jcenter() } }
plugins {
id 'nebula.lint' version '0.30.2'
}
또는 :
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
}
}
apply plugin: 'nebula.lint'
린트 할 규칙을 정의합니다.
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
엔터프라이즈 빌드의 경우 init.gradle 스크립트 또는 Gradle 적용 메커니즘을 통해 포함 된 Gradle 스크립트에서 Lint 규칙을 정의하는 것이 좋습니다.
다중 모듈 프로젝트의 경우 플러그인을 allprojects
블록 에 적용하는 것이 좋습니다 .
allprojects {
apply plugin: 'nebula.lint'
gradleLint.rules = ['all-dependency'] // Add as many rules here as you'd like
}
규칙을 적용하려면 다음을 추가하십시오.
gradleLint.rules += 'unused-dependency'
규칙 검사는 프로젝트의에서 냄새가 나는데 바이너리 컴파일 소스 세트 클래스 참조를 찾고 그리고 당신이 당신의 선언했다고 종속성에 이러한 참조 일치 의존성 블록 .
귀하의 친절한 정보를 위해 이전 플러그인에 대해 공유하고 싶습니다
그러나 최신 버전 1.0.3은 2014 년 12 월 23 일에 생성되었습니다 . 그 후에는 업데이트가 없습니다.
주의 : 많은 엔지니어들이 버전 번호 만 업데이트했기 때문에이 플러그인 에 대해 혼란스러워하고 있습니다.
implementation
및 api
), 심지어 악화, 이전되지 않는 것들에 새로운에서 변경할 것을 권장합니다 (예 : compile
, testCompile
, 등).
이전 답변에서 언급 한 프로젝트는 죽은 것 같습니다. 나는 gradle-dependency-analyze를 사용 합니다. 설정은 간단합니다.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'ca.cutterslade.gradle:gradle-dependency-analyze:1.0.3'
}
}
apply plugin: 'ca.cutterslade.analyze'
다음을 수행하십시오.
$ gradle analyzeDependencies
Gradle Dependency Analysis Plugin을 사용하여 많은 행운을 얻었습니다 . 시작하려면 Gradle 빌드 스크립트에 다음 두 가지를 추가하세요.
buildscript {
repositories {
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
과
apply plugin: "dependencyAnalysis"
그것들이 제자리에 있으면 gradle analyze
. 사용하지 않는 종속성이있는 경우 아래 텍스트와 유사한 출력과 함께 사용되지 않은 종속성 목록 (선언 및 전이)을 보여주는 빌드 실패가 발생합니다. 빌드 실패는 CI 빌드를 통해 사용되지 않는 종속성이 없도록 강제하려는 경우 매우 편리합니다.
:foo:analyze FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':foo:analyze'.
> The project has unused declared artifacts
나는 이것에 대해 방금 배웠다 : https://plugins.gradle.org/plugin/com.autonomousapps.dependency-analysis
외관상으로는 활발하게 개발 중이지만 아직 테스트하지 않았습니다.
편집 : 사실 꽤 굉장합니다. 많은 조언을 제공합니다 (예 : API와 구현 사용 여부).
편집자 주 :이 답변은 오래되었습니다. 상위 답변을 참조하십시오 .
com.github.nullstress.dependency-analysis Gradle 플러그인을 사용해 볼 수 있습니다.
모든 Gradle 버전에서 사용할 스크립트 스 니펫을 빌드합니다.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "com.github.nullstress:DependencyAnalysisPlugin:1.0.3"
}
}
apply plugin: "com.github.nullstress.dependency-analysis"
Gradle 2.1에 도입 된 새로운 인큐베이팅 플러그인 메커니즘을위한 스크립트 스 니펫을 빌드합니다.
plugins {
id "com.github.nullstress.dependency-analysis" version "1.0.3"
}
또한 Gradle 포럼에 이에 대한 스레드 ( "mvn dependency : analyze" 에 해당하는 Gradle이 있습니까? )가 있습니다.
대부분의 역사적인 답변에 대한 프로젝트는 죽었지 만 gradle-dependency-analyze 는 2016-05-30 현재 살아있는 것으로 보입니다.