2012-03-23 18 views
6

Maven/Ivy hakkında neredeyse sıfır bilgim var ama bu teknolojilerin SBT'nin kütüphaneleri otomatik olarak indirme ve yönetme yeteneğinin arkasında olduğunu biliyoruz. SBT'den bir IntelliJ Idea projesi oluşturmaya çalışırken (Fikir ya da jeneratör eklentisi), yaygın Ivy 2 önbelleğinde saklanan önbelleğe alınmış kütüphaneleri bulamadı. SBT projesini, indirilen kütüphaneleri proje dizini altında saklayan eski şemayı kullanacak şekilde ayarlayarak sorunu çözdüm. Benim başka bir proje varsayılan olarak bu şekilde yapar eski SBT sürümünü kullanır. Her iki durumda da, tüm kitaplıkları yeniden yükledikten sonra, kitaplık ikili dosyalarını yedeklemeden önce ve update'u kaldırmak için clean komutunu kullanıyorum. Bu, aynı kütüphane dosyalarını birçok kez indirdiğim anlamına gelir.SBT için yerel bir proxy deposu nasıl oluşturulur?

Sorun, kitaplıkları önbelleğe almak için yerel bir deponun nasıl kurulacağıdır, böylece SBT güncelleştirmesi kitaplıkları yerel önbellekten yerel önbellekten karşıdan yükler mi? Mümkünse önbellek için mevcut ~/.ivy2/cache dizinini kullanmak güzel olurdu.

En azından temel Ivy 2 bilgisine sahip olduğunuzda bunun muhtemelen oldukça basit olduğuna inanıyorum.

cevap

3

Ivan, bu yardımcı olabilir.

sbt 
> deliver-local 
[info] delivering ivy file to /.../target/scala-2.9.1/ivy-1.0.xml 

Ardından, IntelliJ eşdeğer adımlarını bulmak gerekir, ancak Eclipse size ek bir kütüphane ile Şimdi IvyDE plugin

1) browse to the target/scala-version/ivy-1.0.xml file 
2) select desired configurations (compile, runtime, test, provided, etc.) 

tarafından sunulan "IvyDE Yönetilen bağımlılıklar" inşa yolunu yapılandırmak sen Sbt konfigürasyonunuzun sarmaşık bir temsilcisine sahip olun.

Bu, bir can sıkıcı istisna ile harika bir şekilde çalışır: "sbt temiz", ivy config dosyası atılır ve yukarıdakileri tekrarlamanız gerekir. Eclipse projesi temiz, ivy config, btw.

Bu yaklaşım IntelliJ

+0

için geçerliyse mesaj gönderilsin, teşekkürler. – Ivan

İlgili konular