Newer
Older
vavr-effect / build.mill
package build

import mill._, javalib._, errorprone._

object `package` extends RootModule with JavaModule with ErrorProneModule {

  def artifactName = "vavr-effect"

  def javacOptions = super.javacOptions() ++ Seq(
    "-Xlint:unchecked",
    "-Xlint:rawtypes")

  def errorProneVersion = "2.28.0"

  def errorProneOptions = Seq(
    "-Xep:NullAway:ERROR",
    "-XepOpt:NullAway:AnnotatedPackages=com.github.tonivade.vavr.effect",
    "-XepOpt:NullAway:SuggestSuppressions=true",
    "-XDcompilePolicy=simple",
    "-XDshould-stop.ifError=FLOW",
    "-XDshouldStopPolicyIfError=FLOW"
  )
  
  def errorProneDeps = super.errorProneDeps() ++
    Agg(ivy"com.uber.nullaway:nullaway:0.12.7")

  def ivyDeps = super.ivyDeps() ++ Agg(ivy"io.vavr:vavr:0.10.6")
  
  def sources = Task.Sources {
    Seq(PathRef(millSourcePath / "src" / "main" / "java"))
  }

  def compileIvyDeps = super.compileIvyDeps() ++
    Agg(ivy"org.jspecify:jspecify:1.0.0")

  def publishVersion = "0.1-SNAPSHOT"

  object test extends JavaTests with TestModule.Junit5 {

    def ivyDeps = super.ivyDeps() ++ Agg(
      ivy"org.junit.jupiter:junit-jupiter:5.12.2",
      ivy"org.mockito:mockito-core:5.18.0",
      ivy"org.mockito:mockito-junit-jupiter:5.18.0"
    )

    def sources = Task.Sources {
      Seq(PathRef(millSourcePath / "src" / "test" / "java"))
    }

    def testSandboxWorkingDir = false
    def testEnableWorkStealing = false
  }
}