, bu şimdiye dağıtım için Scala uygulamasını ambalaj için bulunan en iyi yöntemdir:
Birincisi, Gary Boon tarafından açıklanan uygulama için ana giriş noktası olarak bir Java sınıfı oluşturmak . Bu, uygulamayı java komutuyla bir JAR'dan çalıştırmanıza izin verir.
import java.util.ArrayList;
import scala.tools.nsc.MainGenericRunner;
public class Main {
public static void main (String[] args) {
ArrayList<String> argList = new ArrayList<String>();
argList.add("fully.qualified.ClassName");
for (String s : args) {
argList.add(s);
}
MainGenericRunner.main(argList.toArray(new String[0]));
}
}
Şimdi bütün derslerini paketlemek için Eclipse'nın İhracat Runnable JAR komutunu kullanabilirsiniz: Ben java komutuyla Scala sınıfını çalıştıran Kaynak yolunda Scala kütüphanelerini sahip olsa bile, problemli olduğunu buldular ve kütüphaneleri bir JAR dosyasına dönüştürür. JAR'ın ana sınıfını Java giriş noktasına ayarlayın. Ayrıca, Eclipse tarafından üretilen çıktı ayarlarını ANT oluşturma dosyası olarak kaydedebilirsiniz, böylece ayarlamalar yapabilirsiniz. Java giriş noktası ile JAR oluşturmak için ANT kullanarak en iyi sonuçları verdi. Diğer JAR bağımlılıklarını da bu şekilde paketleyebilirsiniz, bu da JAR'ı farklı bir ana bilgisayarda çalıştırmaya çalışırken çok daha basit hale getirir. En azından Scala kütüphanesine ve Scala araçları JAR'a ihtiyacınız olacak. Bu arka plan olarak programını çalıştıran
nohup java -jar MyJettyServer.jar </dev/null>> server.log 2>> server_error.log &
: Benim kadar, aşağıdaki komutu (source) kullanarak Daemon süreci olarak sunucuyu çalıştırabilir, iskelesi gömülü kullanarak ediyorsanız
<zipfileset excludes="META-INF/*.SF" src="${scala.lib.jar}"/>
<zipfileset excludes="META-INF/*.SF" src="${scala.tools.jar}"/>
Geçerli kullanıcı oturumundan bağımsız olan süreç, böylece ana bilgisayardan çıktıktan sonra işlem devam edecektir.
Thomas için teşekkürler. Korkarım ki, Java oluşturma araçları söz konusu olduğunda biraz yeniim. Bir WAR dosyasının istediğim şey olduğundan emin değilim. Gömülü modda Jetty'yi çalıştırıyorum, böylece her şeyi koşulabilir bir JAR'a veya başka bir şeye paketlemeyi umuyordum. Yoksa yanlış ağacın havlamasını mı yapıyorum? – lach
A WAR, uygulamanızı bir sunucu-kapsayıcı (http: //) için paketlemek için standarttır (SRV.9.6 Web Uygulaması Arşiv Dosyası - http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index2.html) wiki.eclipse.org/Jetty/Howto/Deploy_Web_Applications). –