Newer
Older
vavr-effect / build.mill
@Antonio Muñoz Antonio Muñoz on 26 May 1 KB open version 0.2
package build

import mill._, javalib._, errorprone._, publish._
import $ivy.`de.tototec::de.tobiasroeser.mill.jacoco::0.0.4`
import de.tobiasroeser.mill.jacoco._
import mill.scalalib.SonatypeCentralPublishModule

object `package` extends RootModule with MavenModule with ErrorProneModule with SonatypeCentralPublishModule {

  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 compileIvyDeps = super.compileIvyDeps() ++
    Agg(ivy"org.jspecify:jspecify:1.0.0")

  def publishVersion = "0.2-SNAPSHOT"
  
  def pomSettings = PomSettings(
    description = "A library that provides scala-like effects for java",
    organization = "com.github.tonivade",
    url = "https://tonivade.es/gitbucket/tonivade/vavr-effect",
    licenses = Seq(License.MIT),
    versionControl = VersionControl.github("tonivade", "vavr-effect"),
    developers = Seq(Developer("tonivade", "Toni Muñoz", "https://github.com/tonivade"))
  )

  object test extends MavenTests with TestModule.Junit5 with JacocoTestModule {

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

    def testSandboxWorkingDir = false
    def testEnableWorkStealing = false
  }
}