0Pricing
Scala for Backend Engineering & Functional Programming · Ders

Çok Projeli Derlemeler ve Dağıtım

Daha büyük uygulamalar için çok projeli SBT derlemelerini yapılandırıp yönetin ve dağıtıma hazırlanın.

Çok Projeli Derlemeler ve Dağıtım, CoddyKit'te ücretsiz bir Scala for Backend Engineering & Functional Programming dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Scala for Backend Engineering & Functional Programming öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Scala for Backend Engineering & Functional Programming kursu toplamda 3 dersten oluşur.

Çok Projeli Derlemeler Neden Kullanılır?

Scala uygulamaları büyüdükçe, tüm kodu tek bir projede yönetmek zorlaşabilir. Çok projeli derlemeler, kod tabanınızı düzenlemenize yardımcı olur.

Şunları yapmanızı sağlar:

  • Farklı modülleri (örneğin çekirdek mantık, API ve yardımcı programlar) birbirinden ayırmak.
  • Bu modüller arasındaki bağımlılıkları açıkça yönetmek.
  • Uygulamanızın ayrı bölümlerine özel ayarlar uygulamak.

Bu yaklaşım, modülerliği ve sürdürülebilirliği geliştirir.

Birden Çok Proje Tanımlama

SBT'de, ana build.sbt dosyanızın içinde birden çok proje tanımlarsınız. Her proje genellikle bir lazy val olur.

Kök proje genellikle bu alt projeleri bir araya getirir veya onlara bağımlı olur.

Kök proje ve iki alt proje için temel bir kurulum aşağıda gösterilmiştir:

lazy val root = project
  .in(file("."))
  .aggregate(core, api)

lazy val core = project
  .in(file("core"))

lazy val api = project
  .in(file("api"))

Alt Proje Dizin Yapısı

Çok projeli bir derlemede, her alt proje genellikle projenizin kök düzeyinde kendine ait bir dizinde bulunur.

Standart yapı şu şekildedir:

  • my-app/ (kök proje dizini)
    • build.sbt (ana derleme dosyası)
    • project/ (SBT derleme tanımı dosyaları)
    • core/ ('core' alt proje dizini)
      • src/ ('core' için kaynak kodu)
    • api/ ('api' alt proje dizini)
      • src/ ('api' için kaynak kodu)

Örnek Alt Proje Kodu

Her alt proje, kendine ait Scala kaynak dosyalarını içerebilir. Örneğin core projemiz basit bir yardımcı program içerebilir.

Bu örneği core projesinin içinden çalıştırmayı deneyin:

package com.coddykit.core

object Greeter {
  def greet(name: String): String = s"Hello, $name!"
}

object CoreApp {
  def main(args: Array[String]): Unit = {
    println(Greeter.greet("CoddyKit"))
  }
}

Projeler Arası Bağımlılıklar

Çoğu zaman bir alt projenin başka bir alt projedeki kodu kullanması gerekir. Örneğin api projeniz, core projesindeki Greeter bileşenine ihtiyaç duyabilir.

Bu bağımlılıkları build.sbt dosyanızda .dependsOn() kullanarak tanımlarsınız.

lazy val root = project
  .in(file("."))
  .aggregate(core, api)

lazy val core = project
  .in(file("core"))

lazy val api = project
  .in(file("api"))
  .dependsOn(core)

Ortak Ayarları Paylaşma

Scala sürümü veya ortak bağımlılıklar gibi birçok ayar, tüm alt projelerinizde aynı olabilir.

Tekrardan kaçınmak için bir commonSettings bloğu tanımlayıp bunu her projeye uygulayabilirsiniz.

lazy val commonSettings = Seq(
  scalaVersion := "2.13.8",
  organization := "com.coddykit"
)

lazy val root = project
  .in(file("."))
  .aggregate(core, api)
  .settings(commonSettings)

lazy val core = project
  .in(file("core"))
  .settings(commonSettings)

lazy val api = project
  .in(file("api"))
  .dependsOn(core)
  .settings(commonSettings)

Görevleri Bir Araya Getirme

Alt projeleri bir araya getiren bir kök projeniz olduğunda, kökte compile gibi bir görev çalıştırmak, bu görevi otomatik olarak bir araya getirilen tüm alt projelerde de çalıştırır.

Örneğin, kök dizininizde sbt compile yazmak hem core hem de api projelerini derler.

.aggregate() yöntemi bu davranışın temelidir.

Dağıtım İçin Paketleme

Uygulamanız derlendikten sonra onu dağıtım için paketlemeniz gerekir. Bu genellikle çalıştırılabilir bir JAR (Java Arşivi) dosyası oluşturmak anlamına gelir.

Çok projeli derlemelerde, genellikle projenizin tüm kodunu ve bağımlılıklarını içeren tek bir JAR istersiniz. Buna 'fat JAR' veya 'uber JAR' adı verilir.

SBT varsayılan olarak fat JAR oluşturmaz, ancak eklentiler bu konuda yardımcı olabilir.

Fat JAR'lar İçin SBT Assembly Eklentisi

sbt-assembly eklentisi, fat JAR'lar oluşturmak için yaygın olarak kullanılır. Derlenmiş tüm sınıfları ve bağımlılıkları tek bir çalıştırılabilir JAR içinde birleştirir.

Önce eklentiyi project/plugins.sbt dosyasına ekleyin:

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "2.0.0")

Çok Projeli Paketleme

Çok projeli bir Scala uygulamasını dağıtım için paketlemeyle ilgili aşağıdaki ifadelerden hangisi TRUE'dur?

Özet ve Sonraki Adımlar

SBT'de çok projeli derlemeleri nasıl yapılandıracağınızı ve yöneteceğinizi öğrendiniz!

  • build.sbt içinde alt projeleri tanımlamayı ele aldık.
  • Dizinleri nasıl düzenleyeceğinizi ve .dependsOn() ile projeler arası bağımlılıkları nasıl yöneteceğinizi gördünüz.
  • Ortak ayarları paylaşmayı ve görevleri bir araya getirmeyi inceledik.
  • Son olarak, dağıtım için paketlemeyi, özellikle fat JAR oluşturmak üzere sbt-assembly eklentisini kullanmayı ele aldık.

Çok projeli derlemelerde uzmanlaşmak, daha büyük ve karmaşık Scala uygulamaları için çok önemlidir; bu sayede modülerlik ve verimli geliştirme iş akışları sağlanır.

Sıkça Sorulan Sorular

“Çok Projeli Derlemeler ve Dağıtım” dersi ücretsiz mi?

Evet — “Çok Projeli Derlemeler ve Dağıtım” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Scala for Backend Engineering & Functional Programming kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Scala for Backend Engineering & Functional Programming kursu toplamda 3 dersten oluşur.

“Çok Projeli Derlemeler ve Dağıtım” dersinde ne öğreneceğim?

Daha büyük uygulamalar için çok projeli SBT derlemelerini yapılandırıp yönetin ve dağıtıma hazırlanın. Scala for Backend Engineering & Functional Programming ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Scala for Backend Engineering & Functional Programming öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Scala for Backend Engineering & Functional Programming, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“Çok Projeli Derlemeler ve Dağıtım” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Scala for Backend Engineering & Functional Programming dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Scala for Backend Engineering & Functional Programming dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. SBT Projesi Kurulumu ve Temelleri
  2. Bağımlılık Yönetimi ve Eklentiler
  3. Çok Projeli Derlemeler ve Dağıtım
← Scala for Backend Engineering & Functional Programming Sayfasına Dön