Gradle store ในระบบไฟล์โลคอล


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มันควรดาวน์โหลด deps ลงในแคชและพิมพ์เส้นทางแบบเต็ม


62
บน Mac ของฉันสำหรับ Gradle 2.4 มัน (ปัจจุบัน) ~/.gradle/caches/modules-2/files-2.1อยู่ใน
Arjan

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
Dmitriy Popov

19

ในพีซีที่ใช้ Windows 10 จะได้รับการบันทึกที่:

C:\Users\<user>\.gradle\caches\modules-2\files-2.1\

ฉันสามารถบังคับให้เปลี่ยนเส้นทางนั้นเป็นตำแหน่งอื่นได้หรือไม่
โมฮัมหมัดไฟซาล

เช่นเดียวกันบน MacOS จริง ๆ
shabunc

@MohammadFaisal ใช่ดูstackoverflow.com/a/28927173/192373
Alex Cohn

13

หากคุณต้องการให้ไฟล์การอ้างอิงของคุณอยู่ในโฟลเดอร์เฉพาะคุณสามารถใช้copyงานได้ สำหรับเช่น

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

งานของคุณพิมพ์ NO-SOURCE ในคอนโซลและอย่าคัดลอกการอ้างอิง !!
Mojtaba

12

โฟลเดอร์ที่เก็บในเครื่องของ Gradle คือ:

  • $ USER_HOME / .gradle / แคช / โมดูล-2 / ไฟล์ 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-jcb4.4

ยกเลิก MD5 แล้วตอนนี้ใช้ค่า SHA1
alphaguy

หลังจากนั้น FILE_HASH_VALUE เป็นคำทั่วไปที่มากขึ้นขอบคุณสำหรับความคิดเห็นของคุณ alphaguy
ห้าม

7

ฉันอยู่บน windows

คุณควรจะสามารถค้นหาการอ้างอิงภายใน

$ USER_HOME.gradle \ แคช \ สิ่งประดิษฐ์-24 \ FileStore


6
บน Mac ของฉันสำหรับ Gradle 2.4 มัน (ปัจจุบัน) ~/.gradle/caches/modules-2/files-2.1อยู่ใน
Arjan

ฉันใช้ windows 10 และมันถูกบันทึกไว้ภายใต้: C: \ Users [ผู้ใช้] \. gradle \ caches \ modules-2 \ files-2.1
user666

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

gradle:5.6.2-jdk12ในกรณีนี้ผมใช้ภาพนักเทียบท่า อย่างที่คุณเห็นคอนเทนเนอร์นักเทียบท่าใช้/tmpเป็นตำแหน่งดาวน์โหลด


1

ในกรณีที่เป็นโครงการ Android gradle - คุณสามารถค้นหาห้องสมุด android ใต้โฟลเดอร์ $ ANDROID_HOME / extras / android / m2repository ของคุณ


1

ใน android studio ทำตามขั้นตอนต่อไปนี้เพื่อตรวจสอบไฟล์ jar ที่ดาวน์โหลดมา

  1. ตั้งค่ามุมมองโครงสร้างโครงการเป็น "โครงการ"
  2. ที่ด้านล่างของส่วนห้องสมุดภายนอกให้ขยาย
  3. คุณสามารถดูไฟล์ jar ที่ดาวน์โหลดได้ที่นี่ ป้อนคำอธิบายรูปภาพที่นี่

1

บนเครื่อง windows ของฉันด้วยปลั๊กอิน "Buildship 2.0.2" ที่ติดตั้งใน eclipse การอ้างอิงจะถูกเก็บไว้:

$ USER_HOME.gradle \ แคช \ โมดูล-2 \ ไฟล์ 2.1


1

ฉันใช้เวลาสักพักกว่าจะรู้เรื่องนี้ดังนั้นคำตอบเพิ่มเติม หวังว่ามันจะช่วยให้คนประหยัดเวลา โปรดทราบว่าถ้าคุณกำลังเรียกใช้sudo gradleการอ้างอิงอาจไม่อยู่ในไดเรกทอรีบ้านของคุณแม้ว่าผลตอบแทนsudo echo $HOME /Users/<my-non-root-user>/บน Mac ของฉัน Gradle /private/var/root/.gradle/caches/ถูกแคชอ้างอิงใน


0

สำหรับกรณีของผมผมใช้พื้นที่เก็บข้อมูลไอวี่และการอ้างอิง Gradle ~/.ivy2/ของฉันถูกเก็บไว้ใน


0

ฉันเพิ่งพบสิ่งนี้ในขณะที่ค้นหาคำตอบนี้ หากคุณกำลังใช้งาน Intellij คุณสามารถนำทางไปยังตำแหน่งไฟล์ แต่เปิดโฟลเดอร์ lib ภายนอกใน explorer โครงการคลิกขวาบน jar แล้วเลือก Open Library Settingsป้อนคำอธิบายรูปภาพที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.