dependency
の最後のバージョンをgradleで出力したい。
この方法で依存関係を追加しました:
compile 'test:test:+'
今、使用しているバージョンを知りたいので、依存関係のバージョンを出力します。
私はこのように使用しています:
gradle dependencyInsight --configuration compile --dependency test:test
しかし、私の出力はこれです:
+--- test:test:+ -> project : (*)
とにかく、+
ではなく、依存関係の実際のバージョンを取得できますか?
app
モジュールのbuild.gradle
Squareの Moshi ライブラリを次のようにインポートしました。
dependencies {
compile 'com.squareup.moshi:moshi:+'
}
次に、ターミナルで次のコマンドを実行しました。
./gradlew app:dependencyInsight --configuration compile --dependency com.squareup.moshi:moshi
私が受け取った出力は次のとおりです。
すべての依存関係の概要を確認する場合は、このコマンドで確認できます-
ソリューション1-
./gradlew app:dependencies
または
ソリューション2-
特定の依存関係を確認する場合は、gradlesのビルドイン 'dependencyInsightを使用できます:-
gradle dependencyInsight --configuration compile --dependency compile 'test:test:+'
または
ソリューション3-
プロジェクトを確認できます。idea folder
プロジェクト内-> .idea/libraries
また、使用されている依存関係の最終バージョンを確認できます。
「compile 'test:test:+'」として依存関係を追加したら、プロジェクトをビルドします。
次に、「Project」フォルダー構造階層内で、フォルダー構造の一番下にある「External Libraries」内の依存関係を見つけます。そのバージョンを依存関係で使用し、プロジェクトを再同期/ビルドします。
次のことができます。
これにより、完全なパスとバージョンが出力されます。必要に応じて、jar名のみを抽出できます。
task printPmdVersion << {
FileTree pmdJar = zipTree(configurations.pmd.filter {
dep -> dep.name.contains("pmd-core")
}.singleFile)
println pmdJar
}
出力の例:
Zip '/home/user/Java/gradle_user_home/caches/modules-2/files-2.1/net.sourceforge.pmd/pmd-core/5.4.1/28715c2f768b58759bb5b373365997c30ac35899/pmd-core-5.4.1.jar'
常に最新のライブラリバージョンを使用するのに「+」記号を使用することはベストプラクティスではありません。必要な場合は繰り返し可能なビルドを作成できないためです。
つまり、ソース管理管理システム(Gitなど)からAPKの以前のバージョンをチェックアウトする必要がある場合、それが正常に機能することがわかっている場合、今日コンパイルする場合(新しいライブラリバージョンがリリースされている可能性があります)...正常に動作していたフレンドAPK ...現在、最新のように正常に動作していません。
それは、そのようなgradleプラグインを使用することをお勧めします:
https://github.com/ben-manes/gradle-versions-plugin
次のようなプロジェクトレベルでbuild.gradleにインストールします。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply plugin: 'com.github.ben-manes.versions'
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.1'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.17.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
また、dependencyUpdate
という名前の新しいgradleタスクがあります。これを昼食にすると、最新バージョンと比較してすべてのライブラリバージョンがレポートされます。
------------------------------------------------------------
: Project Dependency Updates (report to plain text file)
------------------------------------------------------------
The following dependencies are using the latest milestone version:
- com.github.ben-manes:gradle-versions-plugin:0.17.0
- junit:junit:4.12
The following dependencies have later milestone versions:
- com.Android.support:appcompat-v7 [26.1.0 -> 27.0.2]
- com.Android.support.constraint:constraint-layout [1.0.2 -> 1.1.0-beta5]
- com.Android.support.test.espresso:espresso-core [3.0.1 -> 3.0.2-alpha1]
- com.Android.tools.build:gradle [3.0.1 -> 3.2.0-alpha03]
- org.jacoco:org.jacoco.agent [0.7.4.201502262128 -> 0.8.0]
- org.jacoco:org.jacoco.ant [0.7.4.201502262128 -> 0.8.0]
- com.Android.support.test:runner [1.0.1 -> 1.0.2-alpha1]