بیلد یک برنامه اسکالا با تمام کتاب‌خانه‌های مورد استفاده

برخی اوقات نیاز هست که تمام کتاب‌خانه‌های (Dependencyها) یک برنامه را داخل یک فایل .jar جا داده و با این روش در هر محیطی که JVM نصب باشد برنامه را بدون مشکل اجرا کرد. که اصطلاحاً به آن Fat JAR یا ابَر JAR می‌گویند.

اگر از sbt برای بیلد گرفتن استفاده می‌کنید کافیست خط زیر را در project/plugins.sbt اضافه کنید:

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

با این‌کار sbt-assembly را به پروژه اضافه کردیم که دستور جدیدی به sbt اضافه می‌کند. حال با اجرای دستور
sbt assembly $ در ترمینال یا assembly از داخل کنسول sbt یک فایل .jar ساخته می‌شود:

target/scala_X.X.X/projectname-assembly-X.X.X.jar

حال می‌توان این فایل را مستقلاً و به راحتی با جاوا اجرا کرد:

 java -jar target/scala_X.X.X/projectname-assembly-X.X.X.jar

پ.ن: من برای ابزار بیلد sbt توضیح دادم ولی برای build tool های دیگر هم چنین چیزی وجود دارد.

2 Likes