การได้รับการอ้างอิง Gradle ใน IntelliJ IDEA โดยใช้การสร้าง Gradle


140

การสร้างเกรดแม้จากภายใน IntelliJ IDEA ไม่ได้ใส่การอ้างอิงลงในโฟลเดอร์ "External Libraries" ดังนั้นคลาสเหล่านี้จะไม่ปรากฏเป็นคำแนะนำในการแก้ไขและเมื่อฉันเพิ่มพวกเขาด้วยตนเองในขณะที่การนำเข้ามีข้อผิดพลาดในการรวบรวม

ฉันจะทำให้ IntelliJ รวมการพึ่งพาในไฟล์build.gradleของฉันโดยอัตโนมัติได้อย่างไร :

compile 'com.google.code.gson:gson:1.7.2


2
นำเข้าโครงการเป็นโครงการ gradle ตรวจสอบให้แน่ใจว่าคุณเปิดใช้งานการสนับสนุน gradle
M. Deinum

คำตอบ:


192

คุณต้องนำเข้าโครงการเป็นโครงการ Gradle จากภายใน Idea เมื่อคุณเพิ่มการพึ่งพาคุณจะต้องเปิดหน้าต่าง Gradle และทำการรีเฟรช

หรือสร้างไฟล์โครงการจาก gradle ด้วยสิ่งนี้:

build.gradle:

apply plugin: 'idea'

จากนั้นเรียกใช้:

$ gradle idea

หากคุณแก้ไขการอ้างอิงคุณจะต้องเรียกใช้อีกครั้งข้างต้นอีกครั้ง


apply plugin: 'idea'ควรเพิ่มในกรณีใด ๆ
Peter Niederwieser

@PeterNiederwieser - หากคุณกำลังนำเข้าจาก Idea จะมีผลกระทบอะไรบ้าง
tddmonkey

อนุญาตให้กำหนดค่าแง่มุมต่าง ๆ ของการตั้งค่า IntelliJ (เช่น JDK ที่จะใช้) ซึ่งควรได้รับเกียรติจากการนำเข้า หากบิลด์ของคุณไม่มีการกำหนดค่าใด ๆ คุณอาจไม่จำเป็นต้องใช้ปลั๊กอิน (ฉันไม่เคยลอง)
Peter Niederwieser

ขอบคุณที่รู้ดีฉันใช้ gradle เพื่อสร้างไฟล์โครงการสำหรับฉันดังนั้นไม่จำเป็นต้องทำเช่นนี้
tddmonkey

ถือเหมือนกันเมื่อสร้างไฟล์โครงการยกเว้นว่าการใช้ปลั๊กอินนั้นไม่จำเป็นในกรณีนั้น
Peter Niederwieser

189

หลังจากเพิ่มการอ้างอิงเปิดแท็บ "Gradle" ('มุมมอง' -> Tool Windows-> Gradle) และกด "รีเฟรช"

ตัวอย่างการเพิ่ม (คอมไพล์ 'io.reactivex: rxjava: 1.1.0'):

กดรีเฟรช

หากแนวคิดยังคงไม่สามารถแก้ไขการพึ่งพาได้ดังนั้นจึงอาจเป็นไปได้ว่าการพึ่งพานั้นไม่ได้อยู่ในที่เก็บ mavenCentral () และคุณต้องเพิ่มที่เก็บซึ่งการพึ่งพานี้อยู่ในที่เก็บ {}


13
แต่ดูเหมือนว่ามันจะไม่ทำงาน ฉันเพิ่มการพึ่งพาและรีเฟรช แต่เมื่อฉันพยายามนำเข้าไลบรารีทั้งใน XML หรือ Java ซอร์สโค้ด IDEA ไม่สามารถแก้ไขได้
AuBee

3
ทำงานให้ฉัน โชคดีที่ไม่ใช้ปลั๊กอิน gradle ความคิด
gMale

2
@AuBee: ฉันมีปัญหาเดียวกัน มันหายไปเมื่อฉันสร้าง (เพียงครั้งเดียว) โดยใช้ Gradle จากบรรทัดคำสั่ง
โทมัส

@ โทมัสใช่ CLI มีการควบคุมมากขึ้นเสมอ
Andrey

@AuBee หาก Idea ไม่สามารถแก้ไขการพึ่งพาได้ดังนั้นจึงอาจเป็นไปได้ว่าการพึ่งพานั้นไม่ได้อยู่ในที่เก็บ mavenCentral () และคุณต้องเพิ่มที่เก็บลงในที่เก็บ {}
Andrey

20

เมื่อนำเข้า Gradle โครงการที่มีอยู่ (หนึ่งที่มีbuild.gradle) ลงใน IntelliJ IDEA เมื่อนำเสนอด้วยหน้าจอต่อไปให้เลือกนำเข้าจากแบบจำลองภายนอก -> Gradle

นำเข้าโครงการจากรุ่นภายนอก

คุณสามารถเลือกนำเข้าอัตโนมัติในหน้าจอถัดไปเพื่อนำเข้าการอ้างอิงใหม่โดยอัตโนมัติ


3
ที่จริงคำตอบนี้แก้ปัญหาของฉันและควรเป็นสิ่งแรกที่คุณทำก่อนคำตอบที่ถูกต้องจริงข้างต้น
quickinsights

3
นี่เป็นทางออกเดียวที่ใช้งานได้จริงและถูกต้อง การเพิ่มบางอย่างลงใน gradle.properties เพียงเพราะความคิดนั้นผิดธรรมดา
user219882

ฉันไม่สามารถรับการเน้นไวยากรณ์และดำเนินการอัตโนมัติได้เลยโดยไม่ต้องดำเนินการตามขั้นตอนนี้กับการนำเข้าดั้งเดิม คุณอาจสามารถแก้ไขได้โดยไม่ต้องนำเข้าซ้ำ แต่อย่างน้อยก็ง่ายกว่าในโครงการขนาดเล็ก
Ed Norris

@ user219882 - ทำไมเพิ่มบางสิ่งบางอย่างในงานสร้างของคุณ "ธรรมดาผิด"
tddmonkey

@tddmonkey เนื่องจาก IDE ที่ผู้ใช้เลือกใช้ไม่เกี่ยวข้องกับการอธิบายว่าจะมีการสร้างอย่างไร
Qix - MONICA ได้รับการยกเว้นเมื่อ

11

สำหรับผู้ที่ได้รับข้อผิดพลาด "ไม่สามารถแก้ไขการพึ่งพา"
สลับ: ปิด "โหมดออฟไลน์" ปิด
('ดู' -> เครื่องมือ Windows-> Gradle)

หน้าต่างไล่ระดับสี


5

โพสต์ด้านบนของ Andrey ยังคงใช้ได้สำหรับ Intellij รุ่นล่าสุด ณ ไตรมาสที่ 3 ปี 2560 ดังนั้นควรใช้ 'สาเหตุบิวด์โปรเจ็กต์และการคอมไพล์บรรทัดคำสั่งภายนอกแบบเกร็กไม่ได้เพิ่มการพึ่งพาภายนอกใน Intellij ... มันบ้าจริง ๆ เพราะฟังดูเป็นเรื่องจริง ข้อแตกต่างในตอนนี้คือ UI มีลักษณะแตกต่างจากด้านบน แต่ยังคงใช้ไอคอนเดียวกันสำหรับการอัปเดต ฉันเพียงใส่คำตอบที่นี่เพราะฉันไม่สามารถวางสแนปชอตของ UI ใหม่ ... ฉันไม่ต้องการให้มีการโหวตมากขึ้น อันเดรย์ยังให้คำตอบที่ถูกต้องด้านบน: ป้อนคำอธิบายรูปภาพที่นี่


1

ในกรณีของฉันฉันได้รับข้อผิดพลาดขณะรีเฟรช gradle ('ดู' -> Tool Windows-> Gradle) แท็บและกด "รีเฟรช" และรับข้อผิดพลาดนี้ไม่มีการไล่ระดับคุณสมบัติสำหรับคลาส jetgradleplugin

ต้องติดตั้ง Intellij ล่าสุดที่เข้ากันได้กับ gradle 5+

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