ローカルファイルシステム上のGradleストア


236

Gradleはダウンロードしたjarファイルをローカルファイルシステムにどのように保存しますか?Mavenはそれらをの.m2下のディレクトリにUSER_HOME保存しますが、Gradleはどこに保存しますか?そこで.gradleフォルダを確認しましたが、コンパイルされたスクリプトしか見えませんでした。

回答:


224

Gradleは、アーティファクトをUSER_HOME/.gradleフォルダーにキャッシュします。コンパイルされたスクリプトは通常、.gradleプロジェクトフォルダー内のフォルダーにあります。

キャッシュが見つからない場合は、アーティファクトをまだキャッシュしていないことが原因である可能性があります。Gradleがアーティファクトをキャッシュした場所は、簡単なスクリプトでいつでも確認できます。

apply plugin: 'java'

repositories{
  mavenCentral()
}

dependencies{
  compile 'com.google.guava:guava:12.0'
}

task showMeCache << {
  configurations.compile.each { println it }
}

実行するgradle showMeCacheと、depがキャッシュにダウンロードされ、完全なパスが出力されます。


62
私のMac for Gradle 2.4では、(現在)にあり~/.gradle/caches/modules-2/files-2.1ます。
アルジャン

4
左シフト演算は<<Gradleの3.2に推奨されているmrhaki.blogspot.com/2016/11/...
rvazquezglez

1
左シフト演算子は非推奨ですが、引き続き機能します(Gradle 4.10以降)。Gradle 5
Sam

272

Mac、Linux、Windows、つまり3つの主要プラットフォームすべてで、Gradleは依存関係を次の場所に保存します。

~/.gradle/caches/modules-2/files-2.1

52
caches/modules-2/files-2.1ここで他のすべての回答とは異なり、実際に質問に回答していただきありがとうございます。
spaaarky21

cd %userprofile%\.gradle\caches\modules-2\files-2.1— Windowsでこのディレクトリを見つけるための短いコマンド。
ドミトリポポフ


13

依存関係ファイルを特定のフォルダに置きたい場合は、そのcopyタスクを使用するだけです。たとえば

task copyDepJars(type: Copy) {
  from configurations.compile
  into 'C:\\Users\\athakur\\Desktop\\lib'
}

タスクはコンソールにNO-SOURCEを出力し、依存関係をコピーしません!!
Mojtaba

12

Gradleのローカルリポジトリフォルダは次のとおりです。

  • $ USER_HOME / .gradle / caches / modules-2 / files-2.1

定義された依存関係は、リモートリポジトリからgradleのローカルリポジトリフォルダにロードされます。ロードされたファイルごとに、gradleは元のファイルのmd5値(pom、jar、..)で名前が付けられた新しいフォルダーを作成します。依存ファイルの完全パスは、以下から構成されます。

  • groupid + Artifactid + バージョン+ FILE_MD5_VALUE + FILE_NAME

定義した依存関係が次の場合:

  • 「org.springframework:spring-jdbc:4.3.4.RELEASE」をコンパイルします

次に、ライブラリがロードされます:

  • /$USER_HOME/.gradle/caches/modules-2/files-2.1/org.springframework/spring-jdbc/4.3.4.RELEASE/ 42175d194cf6aa7c716c0887f30255e5c0a5262c /spring-jdbc-4.3.4.RELEASE.jar

MD5は廃止され、SHA1値を使用するようになりました
alphaguy

その後、FILE_HASH_VALUEはより一般的になりました。コメントalphaguyに感謝します。
nix

7

私は窓の上にいます、

内部の依存関係を見つけることができるはずです

$ USER_HOME.gradle \ caches \ artifacts-24 \ filestore


6
私のMac for Gradle 2.4では、(現在)にあり~/.gradle/caches/modules-2/files-2.1ます。
アルジャン

私はWindows 10を使用しており、C:\ Users [user] \
。gradle

5

実際、キャッシュの場所はGRADLE_USER_HOME環境変数の値によって異なります。デフォルトでは$USER_HOME/.gradle、Unix-OSベースと%userprofile%.\gradleWindowsにあります。
ただし、この変数を設定すると、キャッシュディレクトリはこのパスから検索されます。

そして、どのような場合でも、caches\modules-2\files-2.1依存関係を見つけるために掘り下げる必要があります。


3

gradle引数--project-cache-dir "/Users/whatever/.gradle/"を使用して、gradleキャッシュディレクトリを強制できます。

このようにして、どのディレクトリが使用されているかを知ることができます(また、プロジェクトごとに異なるキャッシュを作成します)。


2

多くの答えは正しいです!私はあなたがあなたのダウンロード場所を簡単に見つけることができることを付け加えたいです

gradle --info build

https://stackoverflow.com/a/54000767/4471199で説明されているように

新しくダウンロードされたアーティファクトがstdoutに表示されます。

Downloading https://plugins.gradle.org/m2/org/springframework/boot/spring-boot-parent/2.1.7.RELEASE/spring-boot-parent-2.1.7.RELEASE.pom to /tmp/gradle_download551283009937119777bin

この場合、私はdocker imageを使用しましたgradle:5.6.2-jdk12。ご覧のように、Dockerコンテナは/tmpダウンロード場所として使用します。


1

Android Gradleプロジェクトの場合-$ ANDROID_HOME / extras / android / m2repositoryフォルダーの下にAndroidライブラリがあります。


1

Android Studioで、次の手順を実行して、gradleがダウンロードしたjarファイルを確認します。

  1. プロジェクト構造ビューを「プロジェクト」に設定します
  2. 利用可能な外部ライブラリセクションの下部で、それを展開します。
  3. ここでは、ダウンロードしたjarファイルを確認できます。 ここに画像の説明を入力してください

1

「ビルドシップ2.0.2」プラグインがEclipseにインストールされている私のWindowsマシンでは、依存関係が保存されています。

$ USER_HOME.gradle \ caches \ modules-2 \ files-2.1


1

これを実現するのに少し時間がかかりました。うまくいけば、人々の時間を節約できます。あなたが実行している場合がありますsudo gradle依存関係を自分のホームディレクトリに配置することはできません、場合でも、sudo echo $HOMEリターン/Users/<my-non-root-user>/。私のMacでは、Gradleが依存関係をにキャッシュしていました/private/var/root/.gradle/caches/


0

私の場合、私はIvyリポジトリーを使用しており、私のGradle依存関係はに保管されていました~/.ivy2/


0

私はこの答えを探しているときにこれに偶然遭遇しました。intellijを使用している場合は、ファイルの場所に移動できますが、プロジェクトエクスプローラーで外部libフォルダーを開き、jarを右クリックして、[ライブラリ設定を開く]を選択します。ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.