0Pricing
Scala for Backend Engineering & Functional Programming · Pelajaran

Pengelolaan Dependensi dan Plugin

Kelola pustaka eksternal, deklarasikan dependensi, dan manfaatkan plugin SBT untuk memperluas fungsionalitas pembangunan.

Pengelolaan Dependensi dan Plugin adalah pelajaran Scala for Backend Engineering & Functional Programming gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Scala for Backend Engineering & Functional Programming, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Scala for Backend Engineering & Functional Programming mencakup 3 pelajaran total.

Mengapa Menggunakan Pustaka Eksternal?

Saat membangun proyek Scala, Anda sering memerlukan fungsionalitas yang bukan bagian dari bahasa inti. Hal-hal seperti pencatatan, akses basis data, atau kerangka kerja web adalah contoh yang umum.

Daripada menulis semua kode ini sendiri, Anda dapat menggunakan pustaka eksternal (yang juga disebut dependensi). Pustaka ini adalah paket kode siap pakai yang dibuat dan dibagikan oleh pengembang lain.

Menambahkan Pustaka ke build.sbt

SBT memudahkan penambahan pustaka eksternal ini. Anda mendeklarasikannya dalam file build.sbt menggunakan pengaturan libraryDependencies.

Berikut sintaks dasarnya:

  • "org.group": ID organisasi atau grup.
  • % "artifact": ID artefak (nama pustaka). Gunakan %% untuk pustaka Scala agar versi Scala Anda disesuaikan secara otomatis.
  • % "version": Versi spesifik pustaka yang Anda inginkan.

Contoh:

libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.7.32"

Cakupan Dependensi: Kompilasi dan Pengujian

Pustaka mungkin hanya diperlukan untuk bagian tertentu dari proyek Anda. SBT menggunakan cakupan untuk mengelolanya.

  • compile (bawaan): Diperlukan untuk mengompilasi dan menjalankan kode utama Anda.
  • test: Hanya diperlukan untuk mengompilasi dan menjalankan kode pengujian Anda (misalnya, kerangka kerja pengujian seperti ScalaTest).
  • runtime: Tidak diperlukan saat kompilasi, tetapi dibutuhkan saat aplikasi dijalankan.

Anda menentukan cakupan seperti berikut:

libraryDependencies += "org.scalatest" %% "scalatest" % "3.2.16" % "test"

Pengambilan Dependensi Otomatis

Bayangkan sebuah pustaka yang Anda gunakan, seperti kerangka kerja web, juga menggunakan pustaka lain. Pustaka-pustaka ini disebut dependensi transitif.

SBT secara otomatis menangani pengambilan semua dependensi tidak langsung tersebut untuk Anda. Saat menambahkan sebuah pustaka, SBT mencari dependensinya sendiri dan mengunduhnya juga, sehingga proyek Anda memiliki semua yang dibutuhkan.

Anda tidak perlu melacak lusinan pustaka secara manual!

Pencatatan dengan SLF4J

Mari kita gunakan pustaka pencatatan umum, SLF4J (Simple Logging Facade for Java), bersama implementasi sederhananya. Pertama, tambahkan pustaka tersebut ke build.sbt:

libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.7.32"

Sekarang, jalankan kode Scala di bawah untuk melihat cara kerjanya. Perhatikan bahwa kita mengimpor org.slf4j.LoggerFactory, yang berasal dari dependensi baru kita.

import org.slf4j.LoggerFactory

object Main {
  private val logger = LoggerFactory.getLogger(getClass.getName)

  def main(args: Array[String]): Unit = {
    logger.info("Hello from a logged message!")
    println("This is a standard print output.")
  }
}

Memperluas SBT dengan Plugin

Selain mengelola pustaka, SBT sendiri dapat diperluas menggunakan plugin. Plugin adalah file JAR khusus yang menambahkan perintah atau pengaturan baru ke SBT.

Misalnya, ada plugin untuk mengemas aplikasi, menerapkannya ke server, atau bahkan mengintegrasikannya dengan alat tertentu seperti pemformat kode.

Plugin membantu mengotomatiskan tugas umum dan menyederhanakan alur kerja pengembangan Anda.

Mendeklarasikan Plugin dalam plugins.sbt

Berbeda dengan dependensi biasa yang ditempatkan dalam build.sbt, plugin SBT dideklarasikan dalam file khusus: project/plugins.sbt. File ini berada di dalam direktori project pada akar proyek SBT Anda.

Sintaksnya mirip dengan dependensi, tetapi Anda menggunakan addSbtPlugin:

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

Ini memberi tahu SBT untuk mengunduh dan mengaktifkan plugin yang ditentukan untuk proyek Anda.

Membuat JAR Gemuk dengan sbt-assembly

Salah satu plugin yang populer adalah sbt-assembly. Plugin ini membuat satu "JAR gemuk" yang dapat dieksekusi, berisi kode aplikasi dan semua dependensinya.

Pertama, tambahkan plugin tersebut ke project/plugins.sbt:

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

Setelah menambahkannya, Anda dapat menjalankan sbt assembly dari terminal untuk membuat JAR. Kode Scala di bawah inilah yang akan dikemas oleh sbt-assembly.

object Main {
  def main(args: Array[String]): Unit = {
    println("This is a simple application.")
    println("sbt-assembly would package this along with its dependencies into a single JAR.")
  }
}

Pengelolaan Versi dan Resolver

Seiring bertambah besarnya proyek Anda, mengelola banyak dependensi dapat menjadi rumit. Berikut beberapa kiat:

  • Versi yang Konsisten: Gunakan versi pustaka yang sama di semua modul untuk menghindari konflik.
  • Resolver: SBT mengambil pustaka dari repositori (seperti Maven Central). Anda dapat menambahkan resolver khusus jika suatu pustaka tidak tersedia di resolver bawaan.

Secara default, SBT menggunakan repositori publik standar. Untuk pustaka privat, Anda dapat menentukan resolver khusus di build.sbt.

Urutkan Langkah-Langkahnya

Anda ingin menambahkan pustaka eksternal baru ke proyek Scala dan menggunakannya. Susun langkah-langkah berikut dalam urutan yang benar.

Ringkasan Pelajaran

Bagus sekali! Anda telah mempelajari cara mengelola kode eksternal dalam proyek Scala.

  • Dependensi (pustaka) ditambahkan ke build.sbt menggunakan libraryDependencies.
  • SBT menangani dependensi transitif dan mendukung berbagai cakupan (seperti compile dan test).
  • Plugin memperluas fungsionalitas SBT dan dideklarasikan di project/plugins.sbt menggunakan addSbtPlugin.

Menguasai pengelolaan dependensi dan plugin merupakan kunci untuk membangun aplikasi Scala yang kompleks dan tangguh secara efisien!

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pengelolaan Dependensi dan Plugin” gratis?

Ya — teks lengkap “Pengelolaan Dependensi dan Plugin” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Scala for Backend Engineering & Functional Programming, upgrade ke CoddyKit PRO. Kursus Scala for Backend Engineering & Functional Programming mencakup 3 pelajaran total.

Apa yang akan aku pelajari di “Pengelolaan Dependensi dan Plugin”?

Kelola pustaka eksternal, deklarasikan dependensi, dan manfaatkan plugin SBT untuk memperluas fungsionalitas pembangunan. Kamu berlatih Scala for Backend Engineering & Functional Programming dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Scala for Backend Engineering & Functional Programming?

Tidak diperlukan pengalaman sebelumnya. Scala for Backend Engineering & Functional Programming di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.

Berapa lama pelajaran “Pengelolaan Dependensi dan Plugin” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Scala for Backend Engineering & Functional Programming ini?

Ya. Setiap pelajaran Scala for Backend Engineering & Functional Programming menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Penyiapan dan Dasar-Dasar Proyek SBT
  2. Pengelolaan Dependensi dan Plugin
  3. Pembangunan Multi-Proyek dan Penerapan
← Kembali ke Scala for Backend Engineering & Functional Programming