§Uygulamanızın bağımsız bir sürümünü yaratmak
§dist görevini kullanmak
Bir Play uygulamasını dağıtmanın en kolay yolu, kaynağını (genelde bir git iş akışıyla) sunucuda bulundurmak ve activator start
veya activator stage
komutlarından birini kullanarak onu yerinde başlatmaktır.
Ancak, bazen uygulamanızın ikili bir versiyonunu inşa ederek, Play’e bağımlı kalmadan sunucuya doğrudan dağıtmaya ihtiyaç duyabilirsiniz. Bunu, dist
göreviyle yapabilirsiniz.
Play konsolunda dist
yazın:
[my-first-app] $ dist
Bu, uygulamanızın target/universal
dizininde, uygulamanızı çalıştırmak için gerekecek bütün JAR dosyalarını içeren bir ZIP dosyası oluşturur. Alternatif olarak işletim sisteminizin konsolunda, aynı işi yapan activator dist
komutunu da yazabilirsiniz:
$ activator dist
Windows kullanıcıları için .bat dosya uzantılı bir başlangıç betiği üretilecektir. Bir Play uygulamasını Windows’da çalıştırmak için bunu kullanın.
Unix kullanıcıları için, zip dosyaları Unix dosya izinlerini korumaz. Bu sebeple zip dosyası açıldığında başlangıç betiğinin çalıştırıalbilir olarak ayarlanması gerekir:
$ chmod +x /path/to/bin/<project-name>
Alternatif olarak, bir tar.gz dosyası da üretilebilir. Tar dosyaları izinleri korur.
dist
görevi yerineuniversal:package-zip-tarball
görevini çağırın:activator universal:package-zip-tarball
Varsayılan olarak, dist görevi oluşturulan pakete API dokümantasyonunu da ekelyecektir. Eğer bu gereli değilse, aşağıdaki satır build.sbt
dosyasına eklenerek bundan kaçınılabilir:
doc in Compile <<= target.map(_ / "none")
Alt projeli inşalarda, yukarıdaki ifade bütün alt proje tanımlarına uygulanmalıdır.
§Yerli Paketleyici
Play, SBT Native Packager eklentsi’ni kullanır. Yerli paketleyici eklentisi dist
görevini bir zip dosyası yaratacak şekilde beyan eder. dist
görevini çağırmak, aşağıdaki komutu çalıştırmakla eşdeğerdir:
$ activator universal:package-bin
Aşağıdaki türler de dahil, birçok başka türde arşiv elde edilebilir:
- tar.gz
- OS X disk imajları
- Microsoft Installer (MSI)
- RPM’ler
- Debian paketleri
- System V / RPM/Debian paketlerindeki init.d ve Upstart hizmetleri
Ayrıntılı bilgi için lütfen yerli paketleyicideki dokümantasyona başvurun.
§Bir sunucu dağıtımı inşa etmek
sbt-native-packager eklentisi aşağıdaki özellikleri etkinleştiren bir java_server
prototipi (archetype) sağlar:
- System V veya Upstart başlangıç betikleri
- Varsayılan dizinler
Tam bir dökümantasyon bu adreste bulunabilir.
java_server
prototipi varsayılan olarak etkindir, ancak hangi paketleri inşa etmek istediğinize göre bazı ayarlar eklemeniz gerekebilir.
§Asgari Debian ayarları
import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._
maintainer in Linux := "Ad Soyad <[email protected]>"
packageSummary in Linux := "Özel Paket Özeti"
packageDescription := "Uzun paket açıklaması"
Paketinizi bu komutla inşa edin:
play debian:packageBin
§Asgari RPM ayarları
import com.typesafe.sbt.SbtNativePackager._
import NativePackagerKeys._
maintainer in Linux := "Ad Soyad <[email protected]>"
packageSummary in Linux := "Özel Paket Özeti"
packageDescription := "Uzun paket açıklaması"
rpmRelease := "1"
rpmVendor := "example.com"
rpmUrl := Some("http://github.com/example/server")
rpmLicense := Some("Apache v2")
play rpm:packageBin
Bazı hata mesajları yazdırılabilir. Bu yalnızca rpm’in stdout yerine stderr’e günlük tutmasıdır.
§Play PID Yapılandırması
Üretim yapılandırması sayfasında tarif edildiği gibi, Play kendi PID’ini idare eder.
Başlangıç betiğine PID dosyasını nereye koyacağını bildirmek için src/templates/
dizini içine etc-default
isimli bir dosya koyun ve aşağıdaki içeriği ekleyin:
-Dpidfile.path=/var/run/${{app_name}}/play.pid
# Buraya diğer bütün başlangıç ayarlarını da ekleyin
Yer değiştirmelerin bütün listesine yakından bakmak için dokümantasyon’u ziyaret edin.
§Bir Maven (veya Ivy) deposuna yayımlamak
Aynı zamanda uygulamanızı bir Maven deposuna yayımlayabilirsiniz. Bu, hem uygulamanızı içeren JAR dosyasını hem de karşılık gelen POM dosyasını yayımlar.
build.sbt
dosyasında yayımlamak istediğiniz depo için yapılandırmalar yapmalısınız:
publishTo := Some(
"Çözücüm" at "http://mycompany.com/repo"
),
credentials += Credentials(
"Depo", "http://mycompany.com/repo", "admin", "admin123"
)
Sonrasında Play konsolunda, publish
görevini kullanın:
[my-first-app] $ publish
Çözücüler ve kimlik bilgileri tanımlamaları hakkında daha fazla bilgi almak için sbt dokümantasyonu’nu ziyaret edin.
§SBT assembly eklentisini kullanmak
Resmi olarak desteklenmese de, SBT assembly eklentisi Play uygulamalarını paketlemek ve çalıştırmak için kullanılabilir. Bu, çıktı olarak bir jar oluşturacak ve onu java
komutuyla doğrudan çalıştırmanıza izin verecektir.
Bunu kullanmak için, project/plugins.sbt
dosyanızda bu eklentiye bir bağımlılık ekleyin:
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
Şimdi, aşağıdaki yapılandırmayı build.sbt
dosyanıza ekleyin:
import AssemblyKeys._
assemblySettings
mainClass in assembly := Some("play.core.server.NettyServer")
fullClasspath in assembly += Attributed.blank(PlayKeys.playPackageAssets.value)
Artık activator assembly
komutunu çalıştırarak uygulamanızın bir paketini oluşturabilir ve onu aşağıdaki komutla çalıştırabilirsiniz:
$ java -jar target/scala-2.XX/<projenizinadı>-assembly-<version>.jar
You’ll need to substitute in the right project name, version and scala version, of course.
Sonraki: Üretim yapılandırması
Dokümantasyonun bu çevirisi Play ekibi tarafından yapılmamaktadır. Eğer bir hata bulduysanız, bu sayfanın kaynak kodu burada bulunmaktadır. Dokümantasyon yönergelerini okuduktan sonra lütfen katkı yapmaktan çekinmeyin.