feat(01-01): create Mill build configuration with ZIO dependencies

- Mill 1.1.1 build file with Scala 3.3.4
- ZIO 2.1.14, zio-http 3.0.1, zio-config 4.0.2
- Quill 4.8.5, PostgreSQL driver 42.7.4, Flyway 10.21.0
- Assembly rules for fat JAR with service file merging
- .gitignore for Mill artifacts (out/, mill executable)
This commit is contained in:
Jakub Zych
2026-02-04 21:38:53 +01:00
parent db76c5dd91
commit aedb45fc13
3 changed files with 65 additions and 0 deletions

49
build.mill Normal file
View File

@@ -0,0 +1,49 @@
package build
import mill._
import mill.scalalib._
import mill.scalalib.Assembly._
object summercms extends ScalaModule {
def scalaVersion = "3.3.4"
def mvnDeps = Seq(
// ZIO Core
mvn"dev.zio::zio:2.1.14",
// ZIO HTTP
mvn"dev.zio::zio-http:3.0.1",
// ZIO Config
mvn"dev.zio::zio-config:4.0.2",
mvn"dev.zio::zio-config-typesafe:4.0.2",
mvn"dev.zio::zio-config-magnolia:4.0.2",
// Database - Quill with ZIO
mvn"io.getquill::quill-jdbc-zio:4.8.5",
// PostgreSQL JDBC Driver
mvn"org.postgresql:postgresql:42.7.4",
// Flyway for migrations
mvn"org.flywaydb:flyway-core:10.21.0",
mvn"org.flywaydb:flyway-database-postgresql:10.21.0"
)
def scalacOptions = Seq(
"-deprecation",
"-feature",
"-unchecked",
"-Xfatal-warnings"
)
// Assembly configuration for fat JAR
def assemblyRules = super.assemblyRules ++ Seq(
// Merge service files
Rule.Append("META-INF/services/.*"),
// Exclude signature files
Rule.Exclude("META-INF/.*\\.SF"),
Rule.Exclude("META-INF/.*\\.DSA"),
Rule.Exclude("META-INF/.*\\.RSA")
)
}