Gradleはダウンロードしたjarファイルをローカルファイルシステムにどのように保存しますか?Mavenはそれらを。の.m2
下のディレクトリにUSER_HOME
保存しますが、Gradleはそれらをどこに保存しますか?そこでフォルダを確認しました.gradle
が、コンパイルされたスクリプトしか表示されませんでした。
15 に答える
Mac、Linux、Windows、つまり3つの主要なプラットフォームすべてで、Gradleは依存関係を次の場所に保存します。
~/.gradle/caches/modules-2/files-2.1
GradleはアーティファクトをUSER_HOME/.gradle
フォルダーにキャッシュします。コンパイルされたスクリプトは通常、.gradle
プロジェクトフォルダー内のフォルダーにあります。
キャッシュが見つからない場合は、アーティファクトをまだキャッシュしていないことが原因である可能性があります。簡単なスクリプトで、Gradleがアーティファクトをキャッシュした場所をいつでも確認できます。
apply plugin: 'java'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.guava:guava:12.0'
}
task showMeCache doLast() {
configurations.compileClasspath.each { println it }
}
これを実行するgradle showMeCache
と、依存関係がキャッシュにダウンロードされ、フルパスが出力されます。
Windows 10 PCでは、次の場所に保存されます。
C:\Users\%USERNAME%\.gradle\caches\modules-2\files-2.1\
Gradleのローカルリポジトリフォルダは次のとおりです。
- $ USER_HOME / .gradle / caches / modules-2 / files-2.1
定義された依存関係は、リモートリポジトリからgradleのローカルリポジトリフォルダに読み込まれます。ロードされたファイルごとに、gradleは元のファイル(pom、jar、..)のmd5値で名前が付けられた新しいフォルダーを作成します。依存関係ファイルのフルパスは、以下から構成されます。
- 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
実際、キャッシュの場所はGRADLE_USER_HOME
環境変数の値によって異なります。デフォルトでは$USER_HOME/.gradle
、Unix-OSベースおよび%userprofile%.\gradle
Windowsに基づいています。
ただし、この変数を設定すると、キャッシュディレクトリはこのパスから配置されます。
caches\modules-2\files-2.1
そして、どのような場合でも、依存関係を見つけるために掘り下げる必要があります。
依存関係ファイルを特定のフォルダーに配置する場合は、そのcopy
タスクを使用するだけです。たとえば
task copyDepJars(type: Copy) {
from configurations.compile
into 'C:\\Users\\athakur\\Desktop\\lib'
}
私は窓にいます、
内部の依存関係を見つけることができるはずです
$ USER_HOME.gradle \キャッシュ\アーティファクト-24\ファイルストア
多くの答えが正解です!ダウンロード場所を簡単に見つけることができることを付け加えたいと思います
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イメージを使用しましたgradle:5.6.2-jdk12
。ご覧のとおり、Dockerコンテナは/tmp
ダウンロード場所として使用されます。
gradle引数--project-cache-dir "/Users/whatever/.gradle/"
を使用して、gradleキャッシュディレクトリを強制することができます。
このようにして、使用されているディレクトリを確実に把握できます(また、プロジェクトごとに異なるキャッシュを作成できます)。
Android Gradleプロジェクトの場合、Androidライブラリは$ ANDROID_HOME / extras / android/m2repositoryフォルダーの下にあります。
Eclipseに「Buildship2.0.2」プラグインがインストールされている私のWindowsマシンでは、依存関係が保存されます。
$ USER_HOME.gradle \ caches \ modules-2 \ files-2.1
これを理解するのに少し時間がかかりました、それ故に追加の答え。うまくいけば、それは人々の時間を節約することができます。を実行している場合は、を返しsudo gradle
ても、依存関係がホームディレクトリにない可能性があることに注意してください。私のMacでは、Gradleは依存関係をにキャッシュしていました。sudo echo $HOME
/Users/<my-non-root-user>/
/private/var/root/.gradle/caches/
私の場合、Ivyリポジトリを使用していて、Gradleの依存関係はに保存されていました~/.ivy2/
。