gradle 의존성이 새로운 버전인지 확인하는 방법


232

Android Studio +에서 (와 같은 com.android.support:recyclerview-v7:21.+) 버전 번호를 사용할 때 "버전 번호에 +를 사용하지 마십시오"경고가 표시됩니다. 특정 버전 번호를 사용하면 항상 최신 버전을 사용할 수 없습니다. 내 프로젝트에 많은 의존성이 있습니다. 종속성에 최신 버전이 있는지 어떻게 확인합니까? 새로운 버전의 종속성이있을 때 알려주는 Android Studio 플러그인이 있습니까?

편집 : Android 스튜디오는 오래된 Android 지원 라이브러리 및 Google Play 서비스를 강조 표시합니다. 그러나 다른 사용자 정의 라이브러리에는 사용할 수 없습니다.

여기에 이미지 설명을 입력하십시오



2
최소한 Android 3.0에서 사용자 정의 라이브러리의 업데이트는 이제 지원 라이브러리에 대한 질문 이미지에서와 동일한 알림을 표시합니다.
Suragch

@Suragch 이것은 android studio 3.0.1에서 일부 종속성에 대해 작동하지 않습니다.
Rémy

새로운 라이브러리 버전을 확인 하기 위해 gradleplease.appspot.com 을 사용할 수 있습니다
Alex Kisel

답변:


187

이제 Lint 점검으로 Android Studio에 기본 제공됩니다. 여기에서 활성화 할 수 있습니다 :

설정> 편집기> 검사> "최신 라이브러리 버전 사용 가능"

이 검사에 대한 설명 :

사용 가능한 최신 라이브러리 버전

이 검출기는 중앙 저장소를 검사하여이 프로젝트에서 사용하는 종속성에 사용 가능한 최신 버전이 있는지 확인합니다. 이는 Android SDK 도구 및 라이브러리에서 사용 가능한 최신 버전을 확인하는 GradleDependency 확인과 유사하지만 MavenCentral 종속성과 함께 작동하며 매번 라이브러리에 연결되므로 더 유연하지만 속도가 훨씬 느려집니다.

속도 저하로 인해 항상 켜져 있지 않고 수동으로 수동으로 실행하는 것이 좋습니다. 다음과 같이하면됩니다 :

분석> "이름 별 검사 실행"

그런 다음 "사용 가능한 최신 라이브러리 버전"을 검색하여 모듈에서 실행하십시오.

편집 : 위는 Android Studio 2.3부터 작동합니다. 이전 버전 인 경우 (업데이트해야 함) 다음이 도움이 될 수 있습니다.

수동으로 실행하려면 검사가 활성화되어 있어야하므로 (Android Studio 2.0 베타 2부터) 설정에서 검사를 찾아 활성화 한 다음 이름으로 실행 한 다음 다시 비활성화해야합니다 ( 이전 성능을 회복하기 위해).


4
내가 뭔가 잘못하고 있는지 모르겠지만 저에게는 효과가 없었습니다
osrl

1
예, 저도 마찬가지입니다. 영역은 MavenCentral에 없습니다. 개조 버전이 이와 같이 정의되어 있습니까? 내 것은, 그리고 그것을 찾을 수 없습니다 def okhttpVersion = '2.7.2' compile "com.squareup.okhttp:okhttp:$okhttpVersion"
osrl

1
정의 된 버전 문자열로 찾을 수 없습니다. 찾을 수있었습니다 com.squareup.okhttp:okhttp:2.7.2. 또한2.0.0-beta4
osrl

2
사용 가능한 업데이트가 "검사"탭에 표시되지만 build.gradle에서 경고로 강조 표시되지는 않습니다. 아직 그런 해결책을 찾지 못했습니다.
Tiago

3
이 답변으로 돌아와 MavenCentral 종속성에서만 작동한다고보고했습니다. 이는 Jitpack 또는 다른 소스의 리포지토리가 자동으로 업데이트되지 않음을 의미합니다. 모든 종속성의 최신 버전을 얻는 올바른 방법은이 답변에 있습니다 [ stackoverflow.com/questions/28538824/… (여기)
Ray Li

274

업데이트 (05/23/18) :

최신 버전의 Android Studio는 프로젝트 구조 대화 상자에 버전 업데이트를 표시하지 않습니다. 대신 Adam의 답변은 Android Studio 3 이상에 대한 정답입니다.

분석> "이름 별 검사 실행"

그런 다음 " Newer Library Versions Available"를 검색하십시오.

이전 방법 :

현재 Android Studio 2.2새로운 Project Structure대화 상자에는 로컬 및 원격 리포지토리의 사용 가능한 업데이트와 함께 앱이 사용하는 종속성 목록이 표시됩니다.

  • 로 이동하여 활성화 Android Studio > Settings > Build, Execution, Deployment > Gradle > Experimental하고 확인 Use new Project Structure dialog(감사 @jessehensold를)
  • 그런 다음 File > Project Structure > Messages

여기에 이미지 설명을 입력하십시오

이전 버전의 Android Studio의 경우 아래의 다른 응답을 참조하십시오.


1
편집에 대하여; Android Studio 플러그인을 찾고 있었기 때문에 android-studio에 관한 것입니다. 답변 주셔서 감사하지만 이미 그것을 보았다.
osrl

11
Android Studio에는 더 이상 존재하지 않습니다 (베타 2 사용).
곤잘로

8
나는 환경 설정> 빌드, 실행, 배포> Gradle을> 실험에 가서 '을 사용하여 새 프로젝트 구조 대화'를 확인했다
jessehensold

1
"적용"탭으로 이동하여 "적용"버튼을 활성화해야합니다. 버그?
Mateusz Kaflowski

2
Android Studio 2.3 에서이 작업을 시도했지만 대화 상자 Dependencies탭에서 Project Structure프로젝트의 종속성을 찾지 못했습니다.
jakub.g

58

Android Studio의 기본 제공 기능 외에도 Gradle Versions Plugin 이라는 멋진 gradle 플러그인 이 있습니다. 일반 gradle 확장의 이점으로 인해 특정 IDE에 연결되지 않으므로 Gradle을 사용하는 모든 프로젝트에 유용합니다.

Gradle Versions Plugin은 사람이 읽을 수있는 일반 텍스트 형식으로 보고서를 작성할 수 있지만 자동화 된 처리를 위해 JSON 또는 XML로 덤프 할 수도 있습니다.

gradle 파일에 추가되면 표준 사용법은 다음과 같습니다.

> ./gradlew dependencyUpdates

다음과 같은 프로젝트 종속성 보고서가 생성됩니다.

------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------

The following dependencies are using the latest milestone version:
 - com.github.maksim88:PasswordEditText:v0.9
 - com.android.databinding:adapters:1.3.1
 - com.joanzapata.iconify:android-iconify-entypo:2.2.2
 - com.joanzapata.iconify:android-iconify-fontawesome:2.2.2
 - com.webnetmobile.tools:webnet-log:1.0.3
 - com.nulab-inc:zxcvbn:1.2.2

The following dependencies exceed the version found at the milestone revision level:
 - com.hannesdorfmann.fragmentargs:annotation [4.0.0-SNAPSHOT <- 3.0.2]
 - com.hannesdorfmann.fragmentargs:bundler-parceler [4.0.0-SNAPSHOT <- 3.0.2]
 - com.github.bumptech.glide:glide [3.7.0 <- 3.6.1]
 - com.hannesdorfmann.fragmentargs:processor [4.0.0-SNAPSHOT <- 3.0.2]

The following dependencies have later milestone versions:
 - com.github.PhilJay:MPAndroidChart [v2.2.5 -> v3.0.1]
 - com.android.support:appcompat-v7 [25.1.0 -> 25.1.1]
 - com.jakewharton:butterknife [8.4.0 -> 8.5.1]

Generated report file build/dependencyUpdates\report.txt

광범위한 사용 예는 문서 를 참조하십시오 .


참고 : 이 답변 (2017-01)을 작성할 때 0.17.0보다 높은 버전은 계획 텍스트 형식으로 더 많은 출력을 생성합니다. 따라서 전체 URL이 부풀어 오르는 프로젝트 URL. 내가 쓸모가 없다는 것을 알게되면 버전 0.17.0을 고수 하거나이 문제가 해결 된 버전을 사용하십시오 (그러한 버전이있는 경우;)


3
대박! 일반적인 Java 프로젝트를 위해 이것을 찾았습니다. Lint의 Android 특성이없는 훌륭한 일반 솔루션입니다.
TWiStErRob

이것을 Configuration 'compile' in project ':myapp' is deprecated. Use 'implementation' instead. The CompileOptions.bootClasspath property has been deprecated and is scheduled to be removed in Gradle 5.0. Please use the CompileOptions.bootstrapClasspath property instead.실행할 때 오류가 발생했습니다.
과일


2
"최신 라이브러리 버전 사용 가능"방법이 작동하지 않았지만 완벽합니다! (나는 lib 버전에 변수가있는 여러 gradle 파일을 사용합니다)
norbDEV

해당 플러그인의 사진을 추가 할 수 있습니까? 목록에서 찾지 못했습니다.
CoolMind

14

더 이상 사용되지 않음- 현대적인 방법으로 승인 된 답변 참조

아래에 제시된 도구는 새 버전의 Android Studio / Gradle에서 작동하지 않으며 작성자는 더 이상 도구를 유지하지 않습니다 ( 2016 년 10 월 10 일 기준 ). 따라서 이전 버전의 Android Studio에서 작업하지 않는 경우 허용되는 답변에 제시된 솔루션을 사용해야합니다 .


2016 년 1 월 기준으로 Dependency Version Checker 라는 유사한 기능을 수행하는 Android Studio 용 플러그인 이 있으며 GitHub 에서 소스를 찾을 수 있습니다 .

내장 인터페이스 (설정> 플러그인> 리포지토리 찾아보기 ...)를 통해 추가 할 수 있습니다.

기본 인터페이스 내부의 모습

설치 후 다시 시작하면 UI에 다음 탭이 나타납니다.

다시 시작한 후 나타나는 새로운 UI 탭.

build.gradle그런 다음 관련 내용을 VersionChecker 패널의 왼쪽에 붙여넣고 Version Check버튼을 눌렀습니다. 결과는 오른쪽에 표시되는 표이며, 여기에는 붙여 넣은 스크립트에 사용 된 최신 버전의 라이브러리가 포함되어 있습니다 (위 이미지 참조).


이것이 내가 처음 보았던 것이더라도 예상대로 작동하지 않습니다. 나는 Github 저장소에서 문제를 열었습니다. github.com/takuaraki/DependenciesVersionChecker/issues/5
osrl

"버전 확인"을 클릭하면이 오류가 발생하여 일반적인 오류 / 실패 메시지 풍선이 나타납니다.
Greg Ennis

@GregEnnis 최신 버전의 플러그인에 문제가 있습니다. 이전 버전을 사용하거나 업데이트를 기다리는 중 ...
Dev-iL

11

파일> 프로젝트 구조를 참조한 다음 "제안"을 클릭하십시오. 이 솔루션은 Hemant Sharma와 Jeremías Gersicich가 제안했지만 Android Studio는 3.4.1 버전으로 변경했습니다.

여기에 이미지 설명을 입력하십시오


안드로이드 스튜디오 3.5 에서이 화면을 비우는 사람이 있습니까?
니콜라 베긴

@NicolaBeghin, 방금 빈 프로젝트를 확인하고 4 가지 제안을 받았습니다. 예, 7 월에 제안을 표시하지 않은 용어가 있었지만이 버그를 수정했습니다. Google 서버 문제라고 생각하며 때로는 발생할 수 있습니다.
CoolMind

지원하지 않음Gradle KTS
Vlad

2

지원 라이브러리 (com.android.support) 의존성을 위해, 더 나은 옵션이 있습니다 - andle

jcenter와 maven center도 쿼리 할 수 ​​있습니다.

모든 프로젝트를 한 번에 업데이트하는 간단한 3 단계.

1. 설치 :

    $ sudo pip install andle

2. SDK 설정 :

    $ andle setsdk -p <sdk_path>

3. 업데이트 지연 성 :

    $ andle update -p <project_path> [--dryrun] [--remote] [--gradle]

--dryrun : 콘솔에서만 결과 인쇄

--remote : jcenter 및 mavenCentral에서 버전 확인

--gradle : gradle 버전 확인

자세한 내용은 https://github.com/Jintin/andle 을 참조하십시오.


지원 라이브러리에 대해서만?
osrl

--remote 또는 -r을 추가하면 @osrl이 jcenter의 버전을 구문 분석합니다.
Jintin

0

나는이 같은 문제를 다루고 있었고 https://stackoverflow.com/a/35371234/6412430

Android Studio 3.4.1에서 실제로 효과가 있었던 것은 다음과 같습니다.

File -> Project Structure -> Dependencies

이 시점에 도달하면 프로젝트 또는 모듈에 포함 된 모든 종속성이 나열됩니다. 기한이 지난 것들은 밑줄로 표시되며 하나를 선택하면 변수 (선언과 분리 된 경우) 또는 종속성을 업데이트하는 옵션을 제공하는 세부 정보가 표시됩니다.

늦었지만 이것은 나를 위해 일한 것입니다.


나는 또한이 방법을 찾았습니다. 누군가 마이너스로 표시 한 것이 이상합니다.
CoolMind

-1

프로젝트 의존성을 업데이트하거나 권장하려면 안드로이드 프로젝트와 동일해야합니다.

FILE -> Project Structure -> MODULES(app) -> Dependencies

종속성 탭에 도달 +하면 창의 오른쪽 상단 모서리에있는 단추를 클릭하십시오 . +선택 을 클릭 하면 검색 상자에 종속성 검색을위한 Library Dependency새 창이 열립니다 Choose Library Dependency. 나열된 모든 Android 종속성이 업데이트됩니다.


감사하지만이 목록에는 내가 사용하지 않는 라이브러리가 포함되어 있으며 때로는 내가 사용하는 라이브러리가 포함되어 있지 않습니다. 또한 Gson은 com.google.code.gson:gson:2.2.4실제로com.google.code.gson:gson:2.8.5
CoolMind

때로는 의존성이 호환되는 gradle 버전과 호환됩니다. 프로젝트 레벨 gradle에서 업데이트 된 gradle을 사용하고 있는지 확인하십시오
Hemant Sharma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.