Ben scala kodlama ve sbt-assembly eklentisi ile SBT kullanıyorum. Projemin çok fazla harici kütüphanesi var ve bu yüzden sbt-assembly JAR dosyasını paketlemek için uzun zaman alıyor. Kodum için ve dependanclar için ayrı bir jar dosyaları istiyorum. Bu nedenle, sadece kodumu yeniden derleyip yeniden gönderebilirim. Bu nasıl yapılır? Bugüne kadarsbt-assembly: dependanc kavanozun ana kavanoza nasıl bağlanır?
İlerleme:
assembleArtifact in packageScala := false
assembleArtifact in packageDependency := false
Sonra ayrı kavanoz tarafından inşa edilebilir: build.sbt
yılında
Aşağıdaki komutlar kütüphaneleri ambalaj gelen sbt-montaj önler aşağıdaki komutları geçerek: assembly
, assembly-package-scala
ve assembly-package-dependency
. Üç tane kavanoz yaparlar: biri programımı, biri scala kütüphaneleri ve biri de dependansları olan birini içerir. Ancak, ayrı jar dosyasındaki bağımlılıkları görmediğinden, jar dosyası artık yürütülebilir değil. Bence assembly-sbt'ye bir classpath eklemem gerek ama bunu nasıl yapacağımı bilmiyorum. Lütfen yardım (SBT'ye yeni olduğum için detaylı yorumlar takdir ediliyor). Teşekkürler!
Çalışıyor! ve hızlıdır: zaman yaklaşık 40 saniyeden birkaç saniyeye düşer. Teknik not: Scala-library-2.10.2-assembly.jar'ı da dahil etmem gerekiyordu, çünkü aksi halde scala repl değeri kararsızdı. Sbt 0.12.4 ve sbt-assembly 0.9.0 ile derlemeyi yapabilirim. – Karolis
Bu sınıf başvurusunu ana jar dosyasına paketlemenin bir yolu var mı? Bu yüzden üzerine tıklayarak kavanoz yürütmek mümkün olacaktır. – Karolis
[sbt-onejar] (https://github.com/sbt/sbt-onejar) diğer kavanozları içeren bir kavanoz yapabilir ve daha hızlı paketler. Fakat sbt-montajının daha hızlı başladığını duyuyorum çünkü muhtemelen sbt-ferretli kavanozun sivri uçtan kurtulmak zorunda kalması gerekiyor. sbt-assembly 0.9.0 önbellek lib unzips böylece onları bölmek zorunda kalmamalısınız. –