Aralarında bağımlılıklar olan birkaç modül geliştiriyorum ve hepsiyle tek bir IDEA projesinde çalışmak istiyorum. Bireysel projeler için harika çalışan sbt yapı tanımlarından IDEA projeleri oluşturmak için sbt-idea kullanıyorum . Ancak çoklu modül durumunda şu ana kadar denediğim şeyler pek işe yaramıyor:
Her modül için bağımsız olarak bir IDEA .iml dosyası oluşturmak için sbt-idea kullanın ; daha sonra sıfırdan bir ana IDEA projesi oluşturun ve bu modülleri ona ekleyin. Bu, modül kaynaklarının tümünü aynı pencerede düzenlenebilir hale getirir, ancak aralarındaki bağımlılıklar izlenmez (bu nedenle, foo projesindeki bazı kaynaklardan çubuktaki bir şeye gitmeye çalışmak , beni yerel kaynaklara değil, çubuğun içe aktarılan kitaplık sürümüne götürür. ).
Ana projenin Build.scala'sının aşağıdaki gibi şeyleri içerdiği sbt çoklu proje yapılarını (alt projeler olarak da bilinir) kullanın :
lazy val foo = Project(id = "foo", base = file("foo"))
lazy val bar = Project(id = "bar", base = file("bar")) dependsOn(foo)
Bu neredeyse işe yarıyor, çünkü sbt fikri, takip edilen alt projeler arasındaki bağımlılıkları olan bir ana IDEA projesi oluşturuyor. Ancak iki uyarı var:
- Alt projelerin ana projenin alt dizinlerinde yaşaması gerektiği bir sbt kısıtlaması gibi görünüyor (yani,
file("../foo")
izin verilmiyor). Bu gerçekten istediğim şey değil (ya bir modül - "utils" veya "commons" paketi gibi - iki farklı ana projede kullanılıyorsa?) Ama ben onunla yaşayabilirim. - Alt projelerimden birinin kendi alt projeleri var; Sbt'nin kendisinin bu iç içe geçmiş projelerle doğru bir şekilde ilgilenip ilgilenmediğinden emin değilim, ancak her durumda sbt-idea tarafından yok sayılır. Açıkçası, ana projeye özyinelemeli olarak dahil edilecek iç içe geçmiş alt projelere ihtiyacım var.
Özetlemek gerekirse: Halihazırda alt projeleri olabilecek modülleri , uygun düzenleme için izlenen bağımlılıkları olan tek bir büyük IDEA projesinde toplamak istiyorum . Nasıl yapabilirim? Teşekkürler!