Cara terbaik untuk menambahkan dukungan Gradle ke Proyek IntelliJ

168

Saya telah melihat sekeliling sedikit dan belum menemukan solusi terbaik untuk mengubah proyek IntelliJ yang ada menjadi Gradle. Saya bekerja di lingkungan tim dan kami saat ini membagikan file .ipr karena kami memiliki beberapa konfigurasi build yang kami lacak. Kami akan menyingkirkan mereka yang mendukung Gradle pada akhirnya, tetapi saya tidak dapat mengacaukan semuanya sampai konversi Gradle selesai.

Juga, file sumber Java kami terletak di root dari direktori src bukan src / main / java seperti standar.

Apakah ada cara saya dapat menambahkan Gradle ke proyek saya yang tidak akan membuat saya menghapus dan membuat ulang proyek IntelliJ saya dan tidak akan mengacaukan orang lain ketika mereka melakukan tarikan Git?

Gremash
sumber
2
Untuk menjawab pertanyaan direktori sumber Anda - Anda perlu mengganti direktori sumber default dengan sourceSet . Lihat bagaimana kami melakukan ini pada driver Java MongoDB: github.com/mongodb/mongo-java-driver/blob/…
Trisha

Jawaban:

208

Menambahkan:

build.gradle 

di folder proyek root Anda, dan gunakan plugin misalnya:

apply plugin: 'idea'
//and standard one
apply plugin: 'java'

dan dengan api ini dari baris perintah:

gradle cleanIdea 

dan setelah itu:

gradle idea

Setelah itu semuanya harus bekerja

SuperAndrew
sumber
7
ketika mencoba solusi ini apakah ada yang menemukan kesalahan "Modul 'xx' tidak didukung oleh gradle? jika demikian bagaimana itu diselesaikan
Marquis Blount
Terima kasih ini membuat saya gila dan saya tidak tahu cara membuat IntelliJ menyegarkan kembali dependensi proyek setelah menambahkannya ke build.gradle.
Amala
ide gradle (itu tergantung pada ideaProject, ideaModule, ideaWorkspace) tidak bekerja untuk saya karena ideaModule terus gagal. Alih-alih, tugas gradle ideaProject bekerja dengan baik dan proyek sekarang diaktifkan Gradle.
paranza
Baiklah ada masalah dengan pendekatan ini. Anda akan mendapatkan kesalahan "dependensi tidak dapat diterapkan ke groovy.lang.closure". Lihat solusi ini sebagai gantinya: stackoverflow.com/a/17168175/2517730
Yar
1
Ini agak ketinggalan jaman, karena plugin Ide Gradle masih menggunakan proyek ide berbasis file, sedangkan proyek berbasis folder adalah standar dan jauh lebih berguna
Xerus
74

Tidak perlu menghapus .imlfile apa pun . Ikuti ini:

  • tutup proyek
  • File -> Open... dan pilih yang baru Anda buat build.gradle
  • IntelliJ akan bertanya apakah Anda mau:
    • Open Existing Project
    • Delete Existing Project and Import
  • Pilih opsi kedua dan Anda selesai
Michal Kordas
sumber
Bagaimana saya bisa memperbaiki masalah, bahwa proyek baru harus ada di folder lain?
barracuda317
Apakah ini menambahkan JAR dari Struktur Proyek Anda | Perpustakaan sebagai dependensi dan buat EAR (menggunakan plugin) sebagaimana didefinisikan dalam Struktur Proyek | Artefak?
PEMBERITAHUAN
@NOTiFY Saya ragu itu. Ini setara dengan memeriksa proyek dari awal.
Michal Kordas
@Michal Kordas Saya menambahkan semua dependensi dengan tangan, tidak memakan waktu mendekati waktu yang saya harapkan dan sekarang menambahkan penciptaan WAR, JAR & EAR. Ada permintaan fitur untuk ini di JetBrains youtrack.jetbrains.com/issue/IDEABKL-6990
NOTiFY
46

Cara lain, lebih sederhana.

Tambahkan

build.gradle

file ke root proyek Anda. Tutup proyek. Secara manual menghapus file * .iml. Kemudian pilih "Impor Proyek ...", navigasikan ke direktori proyek Anda, pilih file build.gradle dan klik OK.

Guildenstern70
sumber
21

Di IntelliJ 2017.2.4 Saya baru saja menutup proyek dan membukanya kembali dan saya mendapat dialog yang menanyakan apakah saya ingin menghubungkan dengan build.gradle yang membuka dialog impor untuk proyek Gradle.

Tidak perlu menghapus file apa pun atau menambahkan plugin ide ke build.gradle .

Raniz
sumber
2
Dapat mengkonfirmasi ini berfungsi dengan baik. Jalankan saja gradle init di root proyek, maka Anda akan mendapatkan dialog saat Anda membuka proyek berikutnya.
Alex H.
16

Sama seperti referensi di masa depan, jika Anda sudah memiliki Mavenproyek yang perlu Anda lakukan adalah melakukan gradle initdi direktori proyek Anda yang akan menghasilkan build.gradledan dependensi lainnya, kemudian lakukan gradle builddi direktori yang sama.

Yar
sumber
2
Yang menarik: Membuat Build Gradle Baru - Catatan: gradle initdapat menghasilkan berbagai jenis proyek, dan bahkan tahu cara menerjemahkan pom.xmlfile sederhana ke Gradle.
Guy Coder
7

Saya menggunakan IntelliJ Versi 12.

Saya memecahkan masalah yang sama dengan membuat proyek yang sama sekali baru dan "Memeriksa dari Kontrol Versi" Menggabungkan kedua proyek kemudian cukup mudah.

hippoLogic
sumber
1
  1. Tambahkan build.gradledi direktori root proyek Anda.

  2. Kemudian File->Invalidate Caches / Restart

Berikut ini adalah build.gradle dasar untuk proyek Java:

plugins {
    id 'java'
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
version = '1.2.1'
Gayan Weerakutti
sumber