IntelliJ Project'e Gradle desteği eklemenin en iyi yolu


168

Biraz etrafına baktım ve mevcut bir IntelliJ projesini Gradle'a dönüştürmek için en iyi çözümü bulamadım. Bir ekip ortamında çalışıyorum ve şu anda izlediğimiz birkaç derleme yapılandırmasına sahip olduğumuz için .ipr dosyasını paylaşıyoruz. Sonunda Gradle lehine olanlardan kurtulacağız ama Gradle dönüşümü tamamlanana kadar işleri çok fazla sıkıştıramam.

Ayrıca, Java kaynak dosyalarımız standart olarak src / main / java yerine src dizininin kökünde bulunur.

IntelliJ projemi silmemi ve yeniden oluşturmamı ve Git çekme işlemi gerçekleştirdiğinde diğer herkesi mahvetmemek için projeme Gradle eklememin bir yolu var mı?


2
Kaynak dizininizin sorusunu yanıtlamak için - sourceSets ile varsayılan kaynak dizini geçersiz kılmanız gerekir . Bunu MongoDB Java sürücüsünde nasıl yaptığımızı görün: github.com/mongodb/mongo-java-driver/blob/…
Trisha

Yanıtlar:


208

Ekle:

build.gradle 

kök proje klasörünüzde ve örneğin eklentiyi kullanın:

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

ve bu ateşle komut satırından:

gradle cleanIdea 

ve ondan sonra:

gradle idea

Bundan sonra her şey çalışmalı


7
Bu çözümü denerken kimse "Modül 'xx' sınıfta tarafından desteklenmiyor? hatayı karşıladı mı? Eğer öyleyse nasıl çözüldü
Marquis Blount

Teşekkürler bu beni deli ediyordu ve IntelliJ'yi build.gradle'a ekledikten sonra proje bağımlılıklarını nasıl yenileyeceğini anlayamadım.
Amala

gradle fikri (ideaProject, ideaModule, ideaWorkspace'e bağlıdır) ideaModule başarısız olmaya devam ettiğinden benim için çalışmadı. Bunun yerine, görev aşaması ideaProject iyi çalıştı ve proje şimdi Gradle özellikli.
paranza

Tamam, bu yaklaşımla ilgili bir sorun var. Bir "bağımlılıklar groovy.lang.closure uygulanamaz" hatası alırsınız. Bunun yerine şu çözümü inceleyin: stackoverflow.com/a/17168175/2517730
Yar

1
Bu biraz modası geçmiş, çünkü Gradle eklentisi hala dosya tabanlı fikir projesine başvururken, klasör tabanlı proje standart ve çok daha kullanışlı
Xerus

74

Herhangi bir .imldosyayı kaldırmaya gerek yoktur . Bunu takip et:

  • projeyi kapat
  • File -> Open... ve yeni oluşturduğunuz ürünü seçin build.gradle
  • IntelliJ size şunları isteyip istemediğinizi soracaktır:
    • Open Existing Project
    • Delete Existing Project and Import
  • İkinci seçeneği seçin ve işiniz bitti

Yeni projenin başka bir klasörde olması gerektiği sorunu nasıl düzeltebilirim?
barracuda317

Bu proje yapınızdan JAR ekler | Bağımlılıklar olarak kütüphaneler ve Proje Yapısı | Eserleri?
NOTiFY

@NOTiFY Şüpheliyim. Projeyi sıfırdan kontrol etmekle eşdeğerdir.
Michal Kordas

@Michal Kordas Tüm bağımlılıkları elle ekledim, beklediğim zamana kadar hiçbir yere gitmedim ve şimdi WAR, JAR & EAR oluşturmayı ekledim. Bunun için JetBrains'de bir özellik isteği var youtrack.jetbrains.com/issue/IDEABKL-6990
NOTiFY

46

Başka bir yol daha basit.

Ekle

build.gradle

projenizin kök dizinine yerleştirin. Projeyi kapatın. * .İml dosyasını el ile kaldırın. Sonra "Projeyi İçe Aktar ..." ı seçin, proje dizininize gidin, build.gradle dosyasını seçin ve Tamam'a tıklayın.


21

IntelliJ 2017.2.4'te projeyi kapattım ve yeniden açtım ve build.gradle ile bağlantı kurmak isteyip istemediğimi soran bir iletişim kutusu buldum. açtım ve Gradle projeleri için içe aktarma iletişim kutusunu açan .

Herhangi bir dosyayı silmenize veya build.gradle için fikir eklentisini eklemenize gerek yoktur .


2
Bu güzel çalışır onaylayabilir. Sadece proje kökünde gradle init komutunu çalıştırın, ardından projeyi bir sonraki açışınızda iletişim kutusunu göreceksiniz.
Alex H.

16

Gelecekteki bir referans olarak, zaten bir Mavenprojeniz varsa, yapmanız gereken tek şey gradle initproje dizininizde build.gradle, diğer bağımlılıkları oluşturacak ve yapacak bir şey yapmaktır gradle build.


2
İlgi çeken: Yeni Gradle Builds Oluşturma - Notlar: gradle initçeşitli türde projeler üretebilir ve hatta basit pom.xmldosyaları Gradle'a nasıl çevireceğinizi bile bilir .
Guy Coder

7

IntelliJ Sürüm 12 kullanıyorum.

Tamamen yeni bir proje oluşturarak benzer bir sorunu çözdüm ve "Sürüm Kontrolünden Kontrol Etme" İki projeyi daha sonra birleştirmek oldukça kolaydı.


1
  1. build.gradleProjenizin kök dizinine ekleyin .

  2. Sonra sadece File->Invalidate Caches / Restart

Java projeleri için temel bir build.gradle:

plugins {
    id 'java'
}

sourceCompatibility = '1.8'
targetCompatibility = '1.8'
version = '1.2.1'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.