IntelliJ: Birden çok proje üzerinde çalışma


332

Biz maven çoklu projeler inşa ediyoruz (onlara A, B, C adını verelim). Proje A, proje C'nin .jar kullanan proje B'nin .jar'ını kullanır.

Tüm A / B / C projelerinin kodlarını değiştiriyorum, (A MVC uygulaması, B iş hizmetleri ve C bazı paylaşılan katman).

Mesele şu ki, Eclipse / NetBeans'da hepsini bir kerede görebiliyorum ve bunları değiştirmek rahat. Ancak IDEA'da 3 IntelliJ IDEA örneğini (veya n örneğini) açmak zorundayım .

Bir şey mi kaçırıyorum? IntelliJ kullanırken daha iyi bir yaklaşım var mı? Bu benim için IntelliJ'in en büyük dezavantajı.


3
Bugüne kadarki cevaplara baktığımda, gördüğüm temel özlük, IntelliJ'in Eclipse'nin "projeler" olarak adlandırdığı modülleri ve "çalışma alanlarını" projeler olarak tanımlamasıdır. Fikir, aynı projedeki modüllerin oldukça ilgili olmasını sağlamaktır. Dolayısıyla proje A proje B'ye bağlıysa, ancak her ikisi de C projesi ile tamamen ilgisizse, A ve B projelerini aynı IntelliJ projesinde modül olarak açmak iyi olurken, C'yi ikinci bir IntelliJ örneğinde ayrı bir projede açmak iyi olur. Tasarıma katılabilir veya katılmıyorsunuz, ancak (fikri doğru bir şekilde yakaladığımı varsayarak) arkasındaki düşünceyi onurlandırıyorum.
John Chesshir

Yanıtlar:


134

Evet, sezginiz iyiydi. Üç intellij örneği kullanmamalısınız. Bir Proje açabilir ve uygulamanın diğer 'parçalarını' Modül olarak ekleyebilirsiniz. Onları proje tarayıcısı ile ekleyin, varsayılan kısayol tuşu alt + 1'dir


1
Aynı şeyi yapıyorum: ana projeyi içeri aktar, sonra 'import module' kullanarak ikinci projemi içeri aktarıyorum, ancak daha sonra - "var" Bu modüller maven yapısından kaldırıldı: ... kaldırılmasını ister misiniz? projeden mi? " - Sonra 'Hayır'a basıyorum. Ancak bu iletişim kutusu birçok kez görünür. Ne yapabilirim?
nnhthuan

99
Aşağıda daha iyi cevap
redDevil

3
Hangisi?
Piotr Findeisen

4
@redDevil Hayır! Bu cevap daha geneldir, eğer maven olmayan projeleriniz varsa, bu cevap daha iyidir, çünkü en çok oy alan cevap sadece onları kapsamaz. İki cevap farklı durumları ele alıyor ve aynı derecede ilgili, hiç kimse diğerinden daha iyi değil.
luk2302

2
Bu, "Yalnızca Maven" yanıtından daha iyidir, ancak aynı anda görünür olmasını istediğiniz ilgisiz projeleriniz varsa (örneğin, başka bir projenin koduna başvurmak için kolay erişim) veya odaklandığınız proje. IJ'nin burada Eclipse / NetBeans modelini kullanmadığı için son derece sinir bozucu, bu, IJ'ye geçmemi engelleyen ana şey.
Manius

423

Bence bu IntelliJ'in son sürümlerinde düzeldi. Geçerli sürümümde (12.0.2), aynı "çalışma alanına" istediğiniz sayıda ayrı Maven projesi ekleyebilirsiniz.

Bunu yapmanın en basit yolu +, "Maven Projects" (Maven Projeleri) penceresindeki (View> Tool Windows> Maven Projects) küçük simgeyi tıklayıp içe aktarmak istediğiniz ek pom dosyasını seçmektir.


2
Sadece eklemek için: Maven Projesi eklendikten sonra, yerel bir proje ise Proje paneline yüklenir.
Aram Kocharyan

9
Bu projeler farklı git depolarında bulunuyorsa, ayarlarda (Ayarlar> Sürüm Denetimi> Git) 'Havuzları eşzamanlı olarak kontrol et' seçeneğini işaretleyebilirsiniz. IntelliJ, itme, güncelleme ve şube seçimini birden fazla proje üzerinde senkronize halde tutacak.
Tim Van Laer

13
IntelliJ için yeni olan ve "Maven Projects" penceresinin nerede olduğunu bilmeyenler için: sağ üst köşe.
dustin.schultz


3
Dolayısıyla, birden fazla projeye ihtiyacınız varsa, ancak bunlar Gradle veya Ant projeleriyse, hala şansınız kalmadı. Hayır, teşekkürler ... NetBeans ve Eclipse'un izin verdiği gibi 3'ün hepsine de açık olmalıyım. Düzgün bir çalışma alanının olmayışı, hala IJ kullanmamamın 1 numaralı nedenidir.
Manius

216

Lütfen şu 2 adımı izleyin:

Adım 1 : "Maven Projects" i açın

resim açıklamasını buraya girin

2. Adım : Almak istediğiniz projeyi seçin:

resim açıklamasını buraya girin


20
Bir resim bin kelime değerinde bir olup.
Neeraj Jain

3
Teşekkürler, bu gerçekten işe yaradı
J. Adam

3
Bu cevap özellikle ekran görüntülerini kullanmak için bana çok yardımcı oluyor. Teşekkür ederim.
Chaklader Asfak Arefe

1
Aradığım cevap bu. Çok teşekkürler :)
Jerin Kurian

1
Benim durumumda seçeneği göremiyorum:2019.3 community
Marinos An

134

Önkoşul

İlgili tüm projelerin aynı kök dizinde bulunması.

adımlar

1) Önce yeni bir Boş proje oluşturursunuz

Yeni boş proje


2) Sonra tüm projelerinizin kök dizinini seçersiniz.

Bu, bir sonraki adımda yapmak üzere olduğumuz modül organizasyonunu hatırlayacak bir .idea dizini ile boş bir proje yaratacaktır.

Kök dizini seçin


3) Ardından, bir sonraki pencerede farklı projeleri modül olarak içe aktarırsınız

Projeleri modül olarak içe aktarma


4) Bir sonraki pencerede, her projeyi içe aktarmak için build.gradle veya pom.xml dosyasına çift ​​tıklayın.

Proje yeni bir modül olarak içe aktarılacak. Derleme dosyasını seçin


5) Bitti, artık tüm projeleriniz aynı IntelliJ projesinde modül olarak açıldı

Sonuç


16
Bu sorunun tam doğru cevabı bu. Önce proje oluşturun ve boşaltın, ardından mevcut projeleri ekleyin. Teşekkürler.
hrzafer

4
çözüm var. Ancak 'Prequisite İlgili tüm projeleri aynı kök dizinde bulundurmak'. gerekli değil. Maaven projeleri için denedim ve Intelllij 2017.3 sürümü ile sorunsuz çalışıyor. Yine de intellij standart modülleri denemedim.
Gauthier Peel

2
Kesin çözüm!
Satheesh

2
En iyi cevap. Teşekkür ederim :)
AnarchoEnte

2
Intellij Idea 2018.3 ve Gradle ile benim için çalıştı.
1919'da

53

IntelliJ 14.1.2'de şöyle yaptım:

File-> Project Structure-> öğesini seçin Modules.

Öğesini seçin +ve Import Moduleprojenizin dizinini (veya pom'ın bulunduğu dizini) seçin ve Tamam'ı tıklatın.

Bir sonraki ekran akışını takip edin ve tıkladıktan sonra Finishprojeyi mevcut ekranınızın yanında görmelisiniz.

resim açıklamasını buraya girin


modülü bu şekilde ekleyemezsiniz. Cannot import anything from C:/Projects/
ever alian

@everalian, C: / Projects'de veya başka bir yerde pom.xml dosyası var mı?
Neo

Hayır pom.xml dosyam yok. Çünkü Gradlebuild kullanıyorum.
hiç alian

2
Bu kabul edilen çözüm olmalıdır. Tüm projeler maven kullanmaz.
Babken Vardanyan

34

Maven projeleri üzerinde çalışmadığım için çözümlerin hiçbiri benim için işe yaramadı. Daha basit bir çözüm var. Şuraya git:

Dosya-> Proje Yapısı-> Modüller.

resim açıklamasını buraya girin

Modül eklemek yerine, üçüncü seçeneği (kopyala) tıklamanız yeterlidir. Yerel dizininize göz atın ve eklemek istediğiniz projeyi seçin. Modül adı otomatik olarak çözülecektir. Bu kadar.

Güncelleme: Birden fazla alt projeyle projeyi yeniden açmak istediğinizde, yukarıda açıklandığı gibi yeniden işlem adımlarından kaçınmak için Dosya-> Son Kullanılanları Aç -> 'Büyük Projeniz' bölümüne gidin .


1
Evet ... oh Evet .... Aradığım çözüm bu. Maven modülü veya projesi olarak içe aktarma .ideave xxx.imldosyalar oluşturmaz . Bu, apache döşemelerinde sorunlara neden olabilir . Sürümle kullanıyorum 2018.1.5. Çok çok teşekkür ederim.
Cataclysm

Bu harika! Sadece olumsuz, IDE'yi yalnızca bir editör olarak kullanıyor ve derlemek ve çalıştırmak için doğru klasöre gitmek zorunda kalıyor. Herkes birden çok klasör (kopyalanan modüller) için bu çözümü kullanmak için kolay bir yolu var ve hala editörde derlemek ve çalıştırmak?
Greg Hilston

11

@Neo yanıtını genişletmek için: dizininizi seçtikten sonra. import module from external modelmodelinizi seçin ve seçin (bu durumda maven).

model seç

Ardından bir keep project filessonraki iletişim kutusundaki seçeneği işaretleyin. Tüm dosyaları orijinal dizinde tutacaktır.

seçenekleri

Nihai proje yapınız böyle bir şey olacaktır.

yapı

Artık modülünüzü diğer modüllere bağımlı olarak ekleyebilirsiniz ve bağımlılıklarınızın pom.xmlkaynak kodunu değiştirirseniz, Intellij projenizi güncellemeye özen gösterir ( mvnbağımlılıklar için derlemeyi manuel olarak çalıştırmanıza gerek yoktur )



6

Projeler arasında geçiş yapmayı konforlu hale getiren Armory eklentisini kullanabilirsiniz . Proje Listesi için varsayılan kısayol Alt + A şeklindedir .

Proje Listesi penceresinin ekran görüntüsü

Varsayılan olarak şu anda açık olan projeler bu listenin en üstünde görüntülenir ( kalın stilde).


6

Açık tercih -> görünüm ve davranış -> Sistem ayarları -> seçeneğini seçin (projeyi yeni pencerede aç).resim açıklamasını buraya girin

Ardından birden fazla proje açabilir ve düzenleyebilirsiniz.


5
OP tam olarak bundan kaçınmaya çalışıyor. Onları aynı pencerede istiyor, üç projenin hepsi aynı anda.
Simon Forsberg

6

Gradle'ı kullananlar için de aynı şey geçerli olabilir:

resim açıklamasını buraya girin

resim açıklamasını buraya girin

Git: 1. Görünüm -> Araç Pencereleri -> Gradle 2. +Düğmeye tıklayın ve build.gradledosyanızı ekleyin


Topluluk Sürümü veya Ultimate Sürümü mü kullanıyorsunuz? Intellij'de yeniyim ve sadece CE'ye sahibim (2019.3.3). Bu menüde Gradle yoktur.
mike kemirgen

4

"Proje Yapısı" nı açacak pencerelerde "F4" tuşuna basın ve ardından içe aktarılacak yeni bir proje seçmek için "+" simgesini veya "Alt + Ekle" yi tıklayın; ardından Tamam düğmesini tıklayın ...


Anahtar için teşekkürler. @ThisIsFlorianK'ın cevabı ile bir şey eklemeyi unutursanız faydalı oldu!
Satheesh

4

Maven projeleri ekleme düğmesini kullanın ve projenin klasörüne gidin. Ardından pom.xmldosyayı seçin ve IntelliJ'e ekleyin.

resim açıklamasını buraya girin


1

Maven'i inşa etmek ve yeni bir proje eklemek isteyen insanlar için (intellij 14.1.3 kullanıyorum):

  1. Proje görünümünde üst düzey klasöre sağ tıklayın, yeni -> Modül'ü seçin
  2. Modüle eklenecek proje ile aynı adı verin
  3. Üst menüden Dosya-> Yeni-> Proje'yi seçin. Yeni modülle aynı adı, klasör konumlarını da girin.
  4. Projeyi açın ve intellij'in proje yapısını oluşturmasını bekleyin.
  5. Bu yeni projeyi kapatın ve 2. adımda modülün eklendiği orijinal projeyi açın

Oluşturucunuza bağlı olarak, derleme işlemine eklemek için ek adımlar gerekecektir.

SBT için ve üst düzey projede yeni projeyi toplamak için Build.scala dosyasını değiştirdim ve projeyi SBT projeleri penceresine ekledim. SBT çok projeksiyonlu yapılar hakkında daha fazla bilgi: http://www.scala-sbt.org/0.12.2/docs/Getting-Started/Multi-Project.html


IntelliJ, bir projeye sbt modülleri eklemek için destek ekledi ve gerçekten iyi çalışıyor, ancak 2017 sürümlerinden beri bozuk görünüyor. Yine de birden fazla sbt modülü ekleyebilirsiniz, ancak yenilediğinizde, biri hariç hepsini kaybedersiniz.
Nader Ghanbari

1

Intellij IDEA 2019.2, F4 + modülüne tıklayın, HDD'nizden herhangi bir proje eklemek için + 'ya tıklayın, bu menünün üstünde IDE'yi düzenleyebilir ve proje ve daha fazla seçenek oluşturabilirsiniz, çok kolay


0

tıpkı aynı gezginde tutulma gibi açılacak içe aktarma modülü seçeneğini kullanabilirsiniz.


o projeye .ipr açamıyor diyor
Hiç alian

0

Maaven için yeniyim ve Viktor Nordling'in cevabı aracılığıyla eklenen yerel maven projesiyle nasıl çalışabileceğimi anlamadım ve hala pom.xml dosyasında uygun bir bağımlılığa sahibim. Cevap basit: intellij önce yerel olarak eklenen modülünüze bakar ve bir tane bulamazsa projeyi uzaktan almaya gider. Bunu maven modülü eklerken veya kaldırırken proje tarayıcınızın altındaki "harici kütüphaneler" e bakarak kontrol edebilirsiniz.

Umarım bu herkese yardımcı olur.



-1

Tüm projelerin bir modüle taşınmasına gerek yoktur. Modül için kullanım durumu, bir proje konteynerine göre biraz daha ince tanelidir.

Aynı pencerede birden fazla proje açmak için:

Dosya -> Proje Aç

Bu pencerede aç'ı seçin.

Mevcut projeye ekle yazan onay kutusunu işaretleyin.


1
çalışmıyor. mevcut açılan projeyi aynı pencereye değiştirir.
ever alian

3
@everalian ne yazık ki bu özellik kaldırıldı.
BAR
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.