KoverModule

mill.kotlinlib.kover.KoverModule
@Scaladoc(value = "/**\n * Adds targets to a [[mill.kotlinlib.KotlinModule]] to create test coverage reports.\n *\n * This module allows you to generate code coverage reports for Kotlin projects with\n * [[https://github.com/Kotlin/kotlinx-kover Kover]].\n *\n * To declare a module for which you want to generate coverage reports you can\n * mix the [[KoverModule]] trait when defining your module. Additionally, you must define a submodule that extends the\n * [[KoverTests]] trait that belongs to your instance of [[KoverModule]].\n *\n * {{{\n * import mill.kotlinlib.KotlinModule\n * import mill.kotlinlib.kover.KoverModule\n *\n * object foo extends KotlinModule with KoverModule {\n * def kotlinVersion = \"2.0.20\"\n *\n * object test extends KotlinTests with KoverTests\n * }\n * }}}\n *\n * In addition to the normal tasks available to your Kotlin module, Kover\n * Module introduce a few new tasks and changes the behavior of an existing one.\n *\n * - ./mill foo.test # tests your project and collects metrics on code coverage\n * - ./mill foo.kover.htmlReport # uses the metrics collected by a previous test run to generate a coverage report in html format\n * - ./mill foo.kover.xmlReport # uses the metrics collected by a previous test run to generate a coverage report in xml format\n *\n * The measurement data by default is available at `out/foo/kover/koverDataDir.dest/`,\n * the html report is saved in `out/foo/kover/htmlReport.dest/`,\n * and the xml report is saved in `out/foo/kover/xmlReport.dest/`.\n */")
trait KoverModule extends KotlinModule

Adds targets to a mill.kotlinlib.KotlinModule to create test coverage reports.

This module allows you to generate code coverage reports for Kotlin projects with Kover.

To declare a module for which you want to generate coverage reports you can mix the KoverModule trait when defining your module. Additionally, you must define a submodule that extends the KoverTests trait that belongs to your instance of KoverModule.

import mill.kotlinlib.KotlinModule
import mill.kotlinlib.kover.KoverModule

object foo extends KotlinModule with KoverModule {
 def kotlinVersion = "2.0.20"

 object test extends KotlinTests with KoverTests
}

In addition to the normal tasks available to your Kotlin module, Kover Module introduce a few new tasks and changes the behavior of an existing one.

  • ./mill foo.test # tests your project and collects metrics on code coverage
  • ./mill foo.kover.htmlReport # uses the metrics collected by a previous test run to generate a coverage report in html format
  • ./mill foo.kover.xmlReport # uses the metrics collected by a previous test run to generate a coverage report in xml format

The measurement data by default is available at out/foo/kover/koverDataDir.dest/, the html report is saved in out/foo/kover/htmlReport.dest/, and the xml report is saved in out/foo/kover/xmlReport.dest/.

Attributes

Graph
Supertypes
trait KotlinModule
trait JavaModule
trait JavaModuleApi
trait AssemblyModule
trait SemanticDbJavaModule
trait SemanticDbJavaModuleApi
trait OfflineSupportModule
trait GenIdeaModule
trait GenIdeaModuleApi
trait RunModule
trait RunModuleApi
trait DefaultTaskModule
trait JavaModuleBase
trait BspModule
trait BspModuleApi
trait WithJvmWorkerModule
trait JavaHomeModule
trait CoursierModule
trait Module
trait ModuleApi
trait Wrapper
class BaseClass
trait Cacher
trait Cacher
class Object
trait Matchable
class Any
Show all
Self type

Members list

Type members

Classlikes

trait KoverTests extends TestModule

Attributes

Supertypes
trait TestModule
trait TestModuleApi
trait DefaultTaskModule
trait RunModule
trait RunModuleApi
trait WithJvmWorkerModule
trait JavaHomeModule
trait CoursierModule
trait JavaModuleBase
trait BspModule
trait BspModuleApi
trait Module
trait ModuleApi
trait Wrapper
class BaseClass
trait Cacher
trait Cacher
class Object
trait Matchable
class Any
Show all
object kover extends Module, KoverReportBaseModule

Attributes

Supertypes
trait CoursierModule
trait Module
trait ModuleApi
trait Wrapper
class BaseClass
trait Cacher
trait Cacher
class Object
trait Matchable
class Any
Show all
Self type
kover.type

Inherited classlikes

trait JavaTests extends JavaModule, TestModule

Attributes

Inherited from:
JavaModule
Supertypes
trait TestModule
trait TestModuleApi
trait JavaModule
trait JavaModuleApi
trait AssemblyModule
trait SemanticDbJavaModule
trait SemanticDbJavaModuleApi
trait OfflineSupportModule
trait GenIdeaModule
trait GenIdeaModuleApi
trait RunModule
trait RunModuleApi
trait DefaultTaskModule
trait JavaModuleBase
trait BspModule
trait BspModuleApi
trait WithJvmWorkerModule
trait JavaHomeModule
trait CoursierModule
trait Module
trait ModuleApi
trait Wrapper
class BaseClass
trait Cacher
trait Cacher
class Object
trait Matchable
class Any
Show all
Known subtypes
@Scaladoc(value = "/**\n * A test sub-module linked to its parent module best suited for unit-tests.\n */")

A test sub-module linked to its parent module best suited for unit-tests.

A test sub-module linked to its parent module best suited for unit-tests.

Attributes

Inherited from:
KotlinModule
Supertypes
trait KotlinModule
trait JavaTests
trait TestModule
trait TestModuleApi
trait JavaModule
trait JavaModuleApi
trait AssemblyModule
trait SemanticDbJavaModule
trait SemanticDbJavaModuleApi
trait OfflineSupportModule
trait GenIdeaModule
trait GenIdeaModuleApi
trait RunModule
trait RunModuleApi
trait DefaultTaskModule
trait JavaModuleBase
trait BspModule
trait BspModuleApi
trait WithJvmWorkerModule
trait JavaHomeModule
trait CoursierModule
trait Module
trait ModuleApi
trait Wrapper
class BaseClass
trait Cacher
trait Cacher
class Object
trait Matchable
class Any
Show all
Known subtypes
@Scaladoc(value = "/**\n * Miscellaneous machinery around traversing & querying the build hierarchy,\n * that should not be needed by normal users of Mill\n */")
object moduleInternal extends Internal

Miscellaneous machinery around traversing & querying the build hierarchy, that should not be needed by normal users of Mill

Miscellaneous machinery around traversing & querying the build hierarchy, that should not be needed by normal users of Mill

Attributes

Inherited from:
Module
Supertypes
class Internal
class Object
trait Matchable
class Any

Value members

Concrete methods

def koverBinaryReport: Simple[PathRef]
def koverDataDir: Simple[PathRef]
@Scaladoc(value = "/**\n * Reads the Kover version from system environment variable `KOVER_VERSION` or defaults to a hardcoded version.\n */")
def koverVersion: Simple[String]

Reads the Kover version from system environment variable KOVER_VERSION or defaults to a hardcoded version.

Reads the Kover version from system environment variable KOVER_VERSION or defaults to a hardcoded version.

Attributes

Inherited methods

def allBomDeps: Task[Seq[BomDependency]]

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Environment variables to pass to the forked JVM.\n *\n * Includes [[forkEnv]] and the variables defined by Mill itself.\n */")
def allForkEnv: Simple[Map[String, String]]

Environment variables to pass to the forked JVM.

Environment variables to pass to the forked JVM.

Includes forkEnv and the variables defined by Mill itself.

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * All individual Java source files fed into the compiler.\n * Subset of [[allSourceFiles]].\n */")
def allJavaSourceFiles: Simple[Seq[PathRef]]

All individual Java source files fed into the compiler. Subset of allSourceFiles.

All individual Java source files fed into the compiler. Subset of allSourceFiles.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * All individual Kotlin source files fed into the compiler.\n * Subset of [[allSourceFiles]].\n */")
def allKotlinSourceFiles: Simple[Seq[PathRef]]

All individual Kotlin source files fed into the compiler. Subset of allSourceFiles.

All individual Kotlin source files fed into the compiler. Subset of allSourceFiles.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Aggregation of all the options passed to the Kotlin compiler.\n * In most cases, instead of overriding this Target you want to override `kotlincOptions` instead.\n */")
def allKotlincOptions: Simple[Seq[String]]

Aggregation of all the options passed to the Kotlin compiler. In most cases, instead of overriding this Target you want to override kotlincOptions instead.

Aggregation of all the options passed to the Kotlin compiler. In most cases, instead of overriding this Target you want to override kotlincOptions instead.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * All main classes detected in this module that can serve as program entry-points.\n */")
def allLocalMainClasses: Simple[Seq[String]]

All main classes detected in this module that can serve as program entry-points.

All main classes detected in this module that can serve as program entry-points.

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Aggregation of mandatoryMvnDeps and mvnDeps.\n * In most cases, instead of overriding this task you want to override `mvnDeps` instead.\n */")
def allMvnDeps: Simple[Seq[Dep]]

Aggregation of mandatoryMvnDeps and mvnDeps. In most cases, instead of overriding this task you want to override mvnDeps instead.

Aggregation of mandatoryMvnDeps and mvnDeps. In most cases, instead of overriding this task you want to override mvnDeps instead.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The repositories used to resolve dependencies\n *\n * Unlike [[repositoriesTask]], this includes the Mill internal repositories,\n * which allow to resolve Mill internal modules (usually brought in via\n * `JavaModule#coursierDependency`).\n *\n * Beware that this needs to evaluate `JavaModule#coursierProject` of all\n * module dependencies of the current module, which itself evaluates `JavaModule#mvnDeps`\n * and related tasks. You shouldn\'t depend on this task from implementations of `mvnDeps`,\n * which would introduce cycles between Mill tasks.\n */")
def allRepositories: Task[Seq[Repository]]

The repositories used to resolve dependencies

The repositories used to resolve dependencies

Unlike repositoriesTask, this includes the Mill internal repositories, which allow to resolve Mill internal modules (usually brought in via JavaModule#coursierDependency).

Beware that this needs to evaluate JavaModule#coursierProject of all module dependencies of the current module, which itself evaluates JavaModule#mvnDeps and related tasks. You shouldn't depend on this task from implementations of mvnDeps, which would introduce cycles between Mill tasks.

Attributes

Inherited from:
CoursierModule
@Scaladoc(value = "/**\n * All individual source files fed into the compiler.\n */")
override def allSourceFiles: Simple[Seq[PathRef]]

All individual source files fed into the compiler.

All individual source files fed into the compiler.

Attributes

Definition Classes
KotlinModule -> JavaModule -> SemanticDbJavaModule
Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * The folders containing all source files fed into the compiler\n */")
def allSources: Simple[Seq[PathRef]]

The folders containing all source files fed into the compiler

The folders containing all source files fed into the compiler

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The exact id of the artifact to be published. You probably don\'t want to override this.\n * If you want to customize the name of the artifact, override artifactName instead.\n * If you want to customize the scala version in the artifact id, see ScalaModule.artifactScalaVersion\n */")
def artifactId: Simple[String]

The exact id of the artifact to be published. You probably don't want to override this. If you want to customize the name of the artifact, override artifactName instead. If you want to customize the scala version in the artifact id, see ScalaModule.artifactScalaVersion

The exact id of the artifact to be published. You probably don't want to override this. If you want to customize the name of the artifact, override artifactName instead. If you want to customize the scala version in the artifact id, see ScalaModule.artifactScalaVersion

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Override this to change the published artifact id.\n * For example, by default a scala module foo.baz might be published as foo-baz_2.12 and a java module would be foo-baz.\n * Setting this to baz would result in a scala artifact baz_2.12 or a java artifact baz.\n */")
def artifactName: Simple[String]

Override this to change the published artifact id. For example, by default a scala module foo.baz might be published as foo-baz_2.12 and a java module would be foo-baz. Setting this to baz would result in a scala artifact baz_2.12 or a java artifact baz.

Override this to change the published artifact id. For example, by default a scala module foo.baz might be published as foo-baz_2.12 and a java module would be foo-baz. Setting this to baz would result in a scala artifact baz_2.12 or a java artifact baz.

Attributes

Inherited from:
JavaModule
def artifactNameParts: Simple[Seq[String]]

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The suffix appended to the artifact IDs during publishing\n */")
def artifactSuffix: Simple[String]

The suffix appended to the artifact IDs during publishing

The suffix appended to the artifact IDs during publishing

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Default artifact types to fetch and put in the classpath. Add extra types\n * here if you\'d like fancy artifact extensions to be fetched.\n */")
def artifactTypes: Simple[Set[Type]]

Default artifact types to fetch and put in the classpath. Add extra types here if you'd like fancy artifact extensions to be fetched.

Default artifact types to fetch and put in the classpath. Add extra types here if you'd like fancy artifact extensions to be fetched.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * An executable uber-jar/assembly containing all the resources and compiled\n * classfiles from this module and all it\'s upstream modules and dependencies\n */")
def assembly: Simple[PathRef]

An executable uber-jar/assembly containing all the resources and compiled classfiles from this module and all it's upstream modules and dependencies

An executable uber-jar/assembly containing all the resources and compiled classfiles from this module and all it's upstream modules and dependencies

Attributes

Inherited from:
AssemblyModule
@Scaladoc(value = "/**\n * Configuration for the [[assembly]] task: how files and file-conflicts are\n * managed when combining multiple jar files into one big assembly jar.\n */")
def assemblyRules: Seq[Rule]

Configuration for the assembly task: how files and file-conflicts are managed when combining multiple jar files into one big assembly jar.

Configuration for the assembly task: how files and file-conflicts are managed when combining multiple jar files into one big assembly jar.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Bind a dependency ([[Dep]]) to the actual module context (e.g. the scala version and the platform suffix)\n * @return The [[BoundDep]]\n */")
def bindDependency: Task[Dep => BoundDep]

Bind a dependency (Dep) to the actual module context (e.g. the scala version and the platform suffix)

Bind a dependency (Dep) to the actual module context (e.g. the scala version and the platform suffix)

Attributes

Returns

The BoundDep

Inherited from:
CoursierModule
@Scaladoc(value = "/**\n * Bill of Material (BOM) dependencies of this module.\n * This is meant to be overridden to add BOM dependencies.\n * To read the value, you should use [[bomModuleDepsChecked]] instead,\n * which uses a cached result which is also checked to be free of cycles.\n * @see [[bomModuleDepsChecked]]\n */")
def bomModuleDeps: Seq[BomModule]

Bill of Material (BOM) dependencies of this module. This is meant to be overridden to add BOM dependencies. To read the value, you should use bomModuleDepsChecked instead, which uses a cached result which is also checked to be free of cycles.

Bill of Material (BOM) dependencies of this module. This is meant to be overridden to add BOM dependencies. To read the value, you should use bomModuleDepsChecked instead, which uses a cached result which is also checked to be free of cycles.

Attributes

See also

bomModuleDepsChecked

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Same as [[bomModuleDeps]] but checked to not contain cycles.\n * Prefer this over using [[bomModuleDeps]] directly.\n */")
final def bomModuleDepsChecked: Seq[BomModule]

Same as bomModuleDeps but checked to not contain cycles. Prefer this over using bomModuleDeps directly.

Same as bomModuleDeps but checked to not contain cycles. Prefer this over using bomModuleDeps directly.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Any Bill of Material (BOM) dependencies you want to add to this Module, in the format\n * mvn\"org:name:version\"\n */")
def bomMvnDeps: Simple[Seq[Dep]]

Any Bill of Material (BOM) dependencies you want to add to this Module, in the format mvn"org:name:version"

Any Bill of Material (BOM) dependencies you want to add to this Module, in the format mvn"org:name:version"

Attributes

Inherited from:
JavaModule
override def bspBuildTarget: BspBuildTarget

Use to fill most fields of BuildTarget.

Use to fill most fields of BuildTarget.

Attributes

Definition Classes
KotlinModule -> JavaModule -> SemanticDbJavaModule -> BspModule -> BspModuleApi
Inherited from:
KotlinModule
override def bspBuildTargetData: Task[Option[(String, AnyRef)]]

Use to populate the BuildTarget.{dataKind,data} fields.

Use to populate the BuildTarget.{dataKind,data} fields.

Mill specific implementations:

  • JvmBuildTarget
  • ScalaBuildTarget

Attributes

Definition Classes
JavaModule -> BspModule -> BspModuleApi
Inherited from:
JavaModule
override def checkGradleModules: Simple[Boolean]

Whether to enable Gradle Module support when fetching dependencies

Whether to enable Gradle Module support when fetching dependencies

Attributes

Definition Classes
KotlinModule -> CoursierModule
Inherited from:
KotlinModule
def classgraphWorkerModule: ModuleRef[ClassgraphWorkerModule]

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Compiles all the sources to JVM class files.\n */")
override def compile: Simple[CompilationResult]

Compiles all the sources to JVM class files.

Compiles all the sources to JVM class files.

Attributes

Definition Classes
KotlinModule -> JavaModule -> SemanticDbJavaModule
Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * All classfiles and resources from upstream modules and dependencies\n * necessary to compile this module.\n *\n * Keep in sync with [[bspCompileClasspath]]\n */")
override def compileClasspath: Simple[Seq[PathRef]]

All classfiles and resources from upstream modules and dependencies necessary to compile this module.

All classfiles and resources from upstream modules and dependencies necessary to compile this module.

Keep in sync with bspCompileClasspath

Attributes

Definition Classes
JavaModule -> SemanticDbJavaModule
Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The compile-only direct dependencies of this module. These are *not*\n * transitive, and only take effect in the module that they are declared in.\n */")
def compileModuleDeps: Seq[JavaModule]

The compile-only direct dependencies of this module. These are not transitive, and only take effect in the module that they are declared in.

The compile-only direct dependencies of this module. These are not transitive, and only take effect in the module that they are declared in.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/** Same as [[compileModuleDeps]] but checked to not contain cycles. */")
final def compileModuleDepsChecked: Seq[JavaModule]

Same as compileModuleDeps but checked to not contain cycles.

Same as compileModuleDeps but checked to not contain cycles.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Same as `mvnDeps`, but only present at compile time. Useful for e.g.\n * macro-related dependencies like `scala-reflect` that doesn\'t need to be\n * present at runtime\n */")
def compileMvnDeps: Simple[Seq[Dep]]

Same as mvnDeps, but only present at compile time. Useful for e.g. macro-related dependencies like scala-reflect that doesn't need to be present at runtime

Same as mvnDeps, but only present at compile time. Useful for e.g. macro-related dependencies like scala-reflect that doesn't need to be present at runtime

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The folders where the compile time resource files for this module live.\n * If your resources files do not necessarily need to be seen by the compiler,\n * you should use [[resources]] instead.\n */")
def compileResources: Simple[Seq[PathRef]]

The folders where the compile time resource files for this module live. If your resources files do not necessarily need to be seen by the compiler, you should use resources instead.

The folders where the compile time resource files for this module live. If your resources files do not necessarily need to be seen by the compiler, you should use resources instead.

Attributes

Inherited from:
JavaModule
def compiledClassesAndSemanticDbFiles: Simple[PathRef]

Attributes

Inherited from:
SemanticDbJavaModule
@Scaladoc(value = "/**\n * Customize the coursier file cache.\n *\n * This is rarely needed to be changed, but sometimes e.g. you want to load a coursier plugin.\n * Doing so requires adding to coursier\'s classpath. To do this you could use the following:\n * {{{\n * override def coursierCacheCustomizer = Task.Anon {\n * Some( (fc: coursier.cache.FileCache[Task]) =>\n * fc.withClassLoaders(Seq(classOf[coursier.cache.protocol.S3Handler].getClassLoader))\n * )\n * }\n * }}}\n * @return\n */")
def coursierCacheCustomizer: Task[Option[FileCache[Task] => FileCache[Task]]]

Customize the coursier file cache.

Customize the coursier file cache.

This is rarely needed to be changed, but sometimes e.g. you want to load a coursier plugin. Doing so requires adding to coursier's classpath. To do this you could use the following:

 override def coursierCacheCustomizer = Task.Anon {
    Some( (fc: coursier.cache.FileCache[Task]) =>
      fc.withClassLoaders(Seq(classOf[coursier.cache.protocol.S3Handler].getClassLoader))
    )
 }

Attributes

Inherited from:
CoursierModule
@Scaladoc(value = "/**\n * The `coursier.Dependency` to use to refer to this module\n */")
def coursierDependency: Dependency

The coursier.Dependency to use to refer to this module

The coursier.Dependency to use to refer to this module

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The `coursier.Project` corresponding to this `JavaModule`.\n *\n * This provides details about this module to the coursier resolver (details such as\n * dependencies, BOM dependencies, dependency management, etc.). Beyond more general\n * resolution parameters (such as artifact types, etc.), this should be the only way\n * we provide details about this module to coursier.\n */")
def coursierProject: Task[Project]

The coursier.Project corresponding to this JavaModule.

The coursier.Project corresponding to this JavaModule.

This provides details about this module to the coursier resolver (details such as dependencies, BOM dependencies, dependency management, etc.). Beyond more general resolution parameters (such as artifact types, etc.), this should be the only way we provide details about this module to coursier.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * A `CoursierModule.Resolver` to resolve dependencies.\n *\n * Can be used to resolve external dependencies, if you need to download an external\n * tool from Maven or Ivy repositories, by calling `CoursierModule.Resolver#classpath`.\n *\n * @return `CoursierModule.Resolver` instance\n */")
def defaultResolver: Task[Resolver]

A CoursierModule.Resolver to resolve dependencies.

A CoursierModule.Resolver to resolve dependencies.

Can be used to resolve external dependencies, if you need to download an external tool from Maven or Ivy repositories, by calling CoursierModule.Resolver#classpath.

Attributes

Returns

CoursierModule.Resolver instance

Inherited from:
CoursierModule
def defaultTask(): String

The name of the default command, which will be automatically executed if the module name is provided at the Mill command line.

The name of the default command, which will be automatically executed if the module name is provided at the Mill command line.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Dependency management data\n *\n * Versions and exclusions in dependency management override those of transitive dependencies,\n * while they have no effect if the corresponding dependency isn\'t pulled during dependency\n * resolution.\n *\n * For example, the following forces com.lihaoyi::os-lib to version 0.11.3, and\n * excludes org.slf4j:slf4j-api from com.lihaoyi::cask that it forces to version 0.9.4\n * {{{\n * def depManagement = super.depManagement() ++ Seq(\n * mvn\"com.lihaoyi::os-lib:0.11.3\",\n * mvn\"com.lihaoyi::cask:0.9.5\".exclude(\"org.slf4j\", \"slf4j-api\")\n * )\n * }}}\n */")
def depManagement: Simple[Seq[Dep]]

Dependency management data

Dependency management data

Versions and exclusions in dependency management override those of transitive dependencies, while they have no effect if the corresponding dependency isn't pulled during dependency resolution.

For example, the following forces com.lihaoyi::os-lib to version 0.11.3, and excludes org.slf4j:slf4j-api from com.lihaoyi::cask that it forces to version 0.9.4

 def depManagement = super.depManagement() ++ Seq(
   mvn"com.lihaoyi::os-lib:0.11.3",
   mvn"com.lihaoyi::cask:0.9.5".exclude("org.slf4j", "slf4j-api")
 )

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The documentation jar, containing all the Dokka HTML files, for\n * publishing to Maven Central. You can control Dokka version by using [[dokkaVersion]]\n * and option by using [[dokkaOptions]].\n */")
override def docJar: Simple[PathRef]

The documentation jar, containing all the Dokka HTML files, for publishing to Maven Central. You can control Dokka version by using dokkaVersion and option by using dokkaOptions.

The documentation jar, containing all the Dokka HTML files, for publishing to Maven Central. You can control Dokka version by using dokkaVersion and option by using dokkaOptions.

Attributes

Definition Classes
KotlinModule -> JavaModule
Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Control whether `docJar`-task should use a file to pass command line arguments to the javadoc tool.\n * Defaults to `true` on Windows.\n * Beware: Using an args-file is probably not supported for very old javadoc versions.\n */")
def docJarUseArgsFile: Simple[Boolean]

Control whether docJar-task should use a file to pass command line arguments to the javadoc tool. Defaults to true on Windows. Beware: Using an args-file is probably not supported for very old javadoc versions.

Control whether docJar-task should use a file to pass command line arguments to the javadoc tool. Defaults to true on Windows. Beware: Using an args-file is probably not supported for very old javadoc versions.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Extra directories to be copied into the documentation.\n *\n * Typically, includes static files such as html and markdown, but depends\n * on the doc tool that is actually used.\n * @see [[docSources]]\n */")
def docResources: Simple[Seq[PathRef]]

Extra directories to be copied into the documentation.

Extra directories to be copied into the documentation.

Typically, includes static files such as html and markdown, but depends on the doc tool that is actually used.

Attributes

See also

docSources

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Directories to be processed by the API documentation tool.\n *\n * Typically, includes the source files to generate documentation from.\n * @see [[docResources]]\n */")
def docSources: Simple[Seq[PathRef]]

Directories to be processed by the API documentation tool.

Directories to be processed by the API documentation tool.

Typically, includes the source files to generate documentation from.

Attributes

See also

docResources

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The generated documentation, containing all the Dokka HTML files, for\n * publishing to Maven Central. You can control Dokka version by using [[dokkaVersion]]\n * and option by using [[dokkaOptions]].\n */")
def dokkaGenerated: Simple[PathRef]

The generated documentation, containing all the Dokka HTML files, for publishing to Maven Central. You can control Dokka version by using dokkaVersion and option by using dokkaOptions.

The generated documentation, containing all the Dokka HTML files, for publishing to Maven Central. You can control Dokka version by using dokkaVersion and option by using dokkaOptions.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Additional options to be used by the Dokka tool.\n * You should not set the `-outputDir` setting for specifying the target directory,\n * as that is done in the [[docJar]] target.\n */")
def dokkaOptions: Simple[Seq[String]]

Additional options to be used by the Dokka tool. You should not set the -outputDir setting for specifying the target directory, as that is done in the docJar target.

Additional options to be used by the Dokka tool. You should not set the -outputDir setting for specifying the target directory, as that is done in the docJar target.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Dokka version.\n */")
def dokkaVersion: Simple[String]

Dokka version.

Dokka version.

Attributes

Inherited from:
KotlinModule
def finalMainClass: Simple[String]

Attributes

Inherited from:
RunModule
def finalMainClassOpt: Simple[Either[String, String]]

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Any command-line parameters you want to pass to the forked JVM.\n */")
def forkArgs: Simple[Seq[String]]

Any command-line parameters you want to pass to the forked JVM.

Any command-line parameters you want to pass to the forked JVM.

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Similar to `forkArgs` but only applies to the `bat` launcher script\n */")
def forkCmdArgs: Simple[Seq[String]]

Similar to forkArgs but only applies to the bat launcher script

Similar to forkArgs but only applies to the bat launcher script

Attributes

Inherited from:
AssemblyModule
@Scaladoc(value = "/**\n * Any environment variables you want to pass to the forked JVM.\n */")
def forkEnv: Simple[Map[String, String]]

Any environment variables you want to pass to the forked JVM.

Any environment variables you want to pass to the forked JVM.

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Similar to `forkArgs` but only applies to the `sh` launcher script\n */")
def forkShellArgs: Simple[Seq[String]]

Similar to forkArgs but only applies to the sh launcher script

Similar to forkArgs but only applies to the sh launcher script

Attributes

Inherited from:
AssemblyModule
def forkWorkingDir: Simple[Path]

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Folders containing source files that are generated rather than\n * handwritten; these files can be generated in this task itself,\n * or can refer to files generated from other tasks\n */")
def generatedSources: Simple[Seq[PathRef]]

Folders containing source files that are generated rather than handwritten; these files can be generated in this task itself, or can refer to files generated from other tasks

Folders containing source files that are generated rather than handwritten; these files can be generated in this task itself, or can refer to files generated from other tasks

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Contribute components to idea config files.\n */")
def ideaConfigFiles(ideaConfigVersion: Int): Task[Seq[IdeaConfigFile]]

Contribute components to idea config files.

Contribute components to idea config files.

Attributes

Inherited from:
GenIdeaModule
@Scaladoc(value = "/**\n * Contribute facets to the Java module configuration.\n * @param ideaConfigVersion The IDEA configuration version in use. Probably `4`.\n * @return\n */")
def ideaJavaModuleFacets(ideaConfigVersion: Int): Task[Seq[JavaFacet]]

Contribute facets to the Java module configuration.

Contribute facets to the Java module configuration.

Value parameters

ideaConfigVersion

The IDEA configuration version in use. Probably 4.

Attributes

Inherited from:
GenIdeaModule
@Scaladoc(value = "/**\n * The repository that knows about this project itself and its module dependencies\n */")
def internalDependenciesRepository: Task[Repository]

The repository that knows about this project itself and its module dependencies

The repository that knows about this project itself and its module dependencies

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * A jar containing only this module\'s resources and compiled classfiles,\n * without those from upstream modules and dependencies\n */")
def jar: Simple[PathRef]

A jar containing only this module's resources and compiled classfiles, without those from upstream modules and dependencies

A jar containing only this module's resources and compiled classfiles, without those from upstream modules and dependencies

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Optional custom Java Home for the JvmWorker to use\n *\n * If this value is None, then the JvmWorker uses the same Java used to run\n * the current mill instance.\n */")
def javaHome: Simple[Option[PathRef]]

Optional custom Java Home for the JvmWorker to use

Optional custom Java Home for the JvmWorker to use

If this value is None, then the JvmWorker uses the same Java used to run the current mill instance.

Attributes

Inherited from:
JavaHomeModule
@Scaladoc(value = "/**\n * Options to pass to the java compiler\n */")
override def javacOptions: Simple[Seq[String]]

Options to pass to the java compiler

Options to pass to the java compiler

Attributes

Definition Classes
JavaModule -> JavaModuleApi -> SemanticDbJavaModule
Inherited from:
JavaModule
def javadocGenerated: Simple[PathRef]

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Additional options to be used by the javadoc tool.\n * You should not set the `-d` setting for specifying the target directory,\n * as that is done in the [[docJar]] task.\n */")
def javadocOptions: Simple[Seq[String]]

Additional options to be used by the javadoc tool. You should not set the -d setting for specifying the target directory, as that is done in the docJar task.

Additional options to be used by the javadoc tool. You should not set the -d setting for specifying the target directory, as that is done in the docJar task.

Attributes

Inherited from:
JavaModule
def jvmId: Simple[String]

Attributes

Inherited from:
JavaHomeModule
def jvmIndexVersion: Simple[String]

Attributes

Inherited from:
JavaHomeModule
override def jvmWorker: ModuleRef[JvmWorkerModule]

Attributes

Definition Classes
JavaModule -> SemanticDbJavaModule -> WithJvmWorkerModule
Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The compiler API version. Default is derived from [[kotlinLanguageVersion]],\n * as the value typically can not be greater than [[kotlinLanguageVersion]].\n */")
def kotlinApiVersion: Simple[String]

The compiler API version. Default is derived from kotlinLanguageVersion, as the value typically can not be greater than kotlinLanguageVersion.

The compiler API version. Default is derived from kotlinLanguageVersion, as the value typically can not be greater than kotlinLanguageVersion.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * The Java classpath resembling the Kotlin compiler.\n * Default is derived from [[kotlinCompilerMvnDeps]].\n */")
def kotlinCompilerClasspath: Simple[Seq[PathRef]]

The Java classpath resembling the Kotlin compiler. Default is derived from kotlinCompilerMvnDeps.

The Java classpath resembling the Kotlin compiler. Default is derived from kotlinCompilerMvnDeps.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * The Ivy/Coursier dependencies resembling the Kotlin compiler.\n *\n * Default is derived from [[kotlinCompilerVersion]] and [[kotlinUseEmbeddableCompiler]].\n */")
def kotlinCompilerMvnDeps: Simple[Seq[Dep]]

The Ivy/Coursier dependencies resembling the Kotlin compiler.

The Ivy/Coursier dependencies resembling the Kotlin compiler.

Default is derived from kotlinCompilerVersion and kotlinUseEmbeddableCompiler.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Flag to use explicit API check in the compiler. Default is `false`.\n */")
def kotlinExplicitApi: Simple[Boolean]

Flag to use explicit API check in the compiler. Default is false.

Flag to use explicit API check in the compiler. Default is false.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * The compiler language version. Default is derived from [[kotlinVersion]].\n */")
def kotlinLanguageVersion: Simple[String]

The compiler language version. Default is derived from kotlinVersion.

The compiler language version. Default is derived from kotlinVersion.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Flag to enable the use the embeddable kotlin compiler.\n * This can be necessary to avoid classpath conflicts or ensure\n * compatibility to the used set of plugins.\n *\n * The difference between the standard compiler and the embedded compiler is,\n * that the embedded compiler comes as a dependency-free JAR.\n * All its dependencies are shaded and thus relocated to different package names.\n * This also affects the compiler API, since relocated types may surface in the API\n * but are not compatible to their non-relocated versions.\n * E.g. the plugin\'s dependencies need to line up with the embeddable compiler\'s\n * shading, otherwise a [[java.lang.AbstractMethodError]] will be thrown.\n *\n * See also https://discuss.kotlinlang.org/t/kotlin-compiler-embeddable-vs-kotlin-compiler/3196\n */")
def kotlinUseEmbeddableCompiler: Task[Boolean]

Flag to enable the use the embeddable kotlin compiler. This can be necessary to avoid classpath conflicts or ensure compatibility to the used set of plugins.

Flag to enable the use the embeddable kotlin compiler. This can be necessary to avoid classpath conflicts or ensure compatibility to the used set of plugins.

The difference between the standard compiler and the embedded compiler is, that the embedded compiler comes as a dependency-free JAR. All its dependencies are shaded and thus relocated to different package names. This also affects the compiler API, since relocated types may surface in the API but are not compatible to their non-relocated versions. E.g. the plugin's dependencies need to line up with the embeddable compiler's shading, otherwise a java.lang.AbstractMethodError will be thrown.

See also https://discuss.kotlinlang.org/t/kotlin-compiler-embeddable-vs-kotlin-compiler/3196

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Runs the Kotlin compiler with the `-help` argument to show you the built-in cmdline help.\n * You might want to add additional arguments like `-X` to see extra help.\n */")
def kotlincHelp(args: String*): Command[Unit]

Runs the Kotlin compiler with the -help argument to show you the built-in cmdline help. You might want to add additional arguments like -X to see extra help.

Runs the Kotlin compiler with the -help argument to show you the built-in cmdline help. You might want to add additional arguments like -X to see extra help.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Additional Kotlin compiler options to be used by [[compile]].\n */")
def kotlincOptions: Simple[Seq[String]]

Additional Kotlin compiler options to be used by compile.

Additional Kotlin compiler options to be used by compile.

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * The resolved plugin jars\n */")
def kotlincPluginJars: Simple[Seq[PathRef]]

The resolved plugin jars

The resolved plugin jars

Attributes

Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Compiler Plugin dependencies.\n */")
def kotlincPluginMvnDeps: Simple[Seq[Dep]]

Compiler Plugin dependencies.

Compiler Plugin dependencies.

Attributes

Inherited from:
KotlinModule
def launcher: Simple[PathRef]

Builds a command-line "launcher" file that can be used to run this module's code, without the Mill process. Useful for deployment & other places where you do not want a build tool running

Builds a command-line "launcher" file that can be used to run this module's code, without the Mill process. Useful for deployment & other places where you do not want a build tool running

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The *output* classfiles/resources from this module, used for execution,\n * excluding upstream modules and third-party dependencies, but including unmanaged dependencies.\n *\n * This is build from [[localCompileClasspath]] and [[localRunClasspath]]\n * as the parts available \"before compilation\" and \"after compilation\".\n *\n * Keep in sync with [[bspLocalClasspath]]\n */")
def localClasspath: Simple[Seq[PathRef]]

The output classfiles/resources from this module, used for execution, excluding upstream modules and third-party dependencies, but including unmanaged dependencies.

The output classfiles/resources from this module, used for execution, excluding upstream modules and third-party dependencies, but including unmanaged dependencies.

This is build from localCompileClasspath and localRunClasspath as the parts available "before compilation" and "after compilation".

Keep in sync with bspLocalClasspath

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The *input* classfiles/resources from this module, used during compilation,\n * excluding upstream modules and third-party dependencies\n */")
def localCompileClasspath: Simple[Seq[PathRef]]

The input classfiles/resources from this module, used during compilation, excluding upstream modules and third-party dependencies

The input classfiles/resources from this module, used during compilation, excluding upstream modules and third-party dependencies

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The part of the [[localClasspath]] which is available \"after compilation\".\n *\n * Keep in sync with [[bspLocalRunClasspath]]\n */")
override def localRunClasspath: Simple[Seq[PathRef]]

The part of the localClasspath which is available "after compilation".

The part of the localClasspath which is available "after compilation".

Keep in sync with bspLocalRunClasspath

Attributes

Definition Classes
JavaModule -> RunModule
Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Allows you to specify an explicit main class to use for the `run` command.\n * If none is specified, the classpath is searched for an appropriate main\n * class to use if one exists.\n */")
def mainClass: Simple[Option[String]]

Allows you to specify an explicit main class to use for the run command. If none is specified, the classpath is searched for an appropriate main class to use if one exists.

Allows you to specify an explicit main class to use for the run command. If none is specified, the classpath is searched for an appropriate main class to use if one exists.

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Additional options for the java compiler derived from other module settings.\n */")
override def mandatoryJavacOptions: Simple[Seq[String]]

Additional options for the java compiler derived from other module settings.

Additional options for the java compiler derived from other module settings.

Attributes

Definition Classes
JavaModule -> JavaModuleApi -> SemanticDbJavaModule
Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The dependencies of this module.\n * Defaults to add the kotlin-stdlib dependency matching the [[kotlinVersion]].\n */")
override def mandatoryMvnDeps: Simple[Seq[Dep]]

The dependencies of this module. Defaults to add the kotlin-stdlib dependency matching the kotlinVersion.

The dependencies of this module. Defaults to add the kotlin-stdlib dependency matching the kotlinVersion.

Attributes

Definition Classes
KotlinModule -> JavaModule -> JavaModuleBase
Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * Creates a manifest representation which can be modified or replaced\n * The default implementation just adds the `Manifest-Version`, `Main-Class` and `Created-By` attributes\n */")
def manifest: Simple[JarManifest]

Creates a manifest representation which can be modified or replaced The default implementation just adds the Manifest-Version, Main-Class and Created-By attributes

Creates a manifest representation which can be modified or replaced The default implementation just adds the Manifest-Version, Main-Class and Created-By attributes

Attributes

Inherited from:
AssemblyModule
@Scaladoc(value = "/**\n * Map dependencies before resolving them.\n * Override this to customize the set of dependencies.\n */")
def mapDependencies: Task[Dependency => Dependency]

Map dependencies before resolving them. Override this to customize the set of dependencies.

Map dependencies before resolving them. Override this to customize the set of dependencies.

Attributes

Inherited from:
CoursierModule
@Scaladoc(value = "/**\n * A [[CoursierModule.Resolver]] to resolve dependencies.\n *\n * Unlike [[defaultResolver]], this resolver can resolve Mill modules too\n * (obtained via [[JavaModule.coursierDependency]]).\n *\n * @return `CoursierModule.Resolver` instance\n */")
def millResolver: Task[Resolver]

A CoursierModule.Resolver to resolve dependencies.

A CoursierModule.Resolver to resolve dependencies.

Unlike defaultResolver, this resolver can resolve Mill modules too (obtained via JavaModule.coursierDependency).

Attributes

Returns

CoursierModule.Resolver instance

Inherited from:
CoursierModule
def moduleCtx: ModuleCtx

Attributes

Inherited from:
BaseClass
@Scaladoc(value = "/**\n * The direct dependencies of this module.\n * This is meant to be overridden to add dependencies.\n * To read the value, you should use [[moduleDepsChecked]] instead,\n * which uses a cached result which is also checked to be free of cycle.\n * @see [[moduleDepsChecked]]\n */")
def moduleDeps: Seq[JavaModule]

The direct dependencies of this module. This is meant to be overridden to add dependencies. To read the value, you should use moduleDepsChecked instead, which uses a cached result which is also checked to be free of cycle.

The direct dependencies of this module. This is meant to be overridden to add dependencies. To read the value, you should use moduleDepsChecked instead, which uses a cached result which is also checked to be free of cycle.

Attributes

See also

moduleDepsChecked

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Same as [[moduleDeps]] but checked to not contain cycles.\n * Prefer this over using [[moduleDeps]] directly.\n */")
final def moduleDepsChecked: Seq[JavaModule]

Same as moduleDeps but checked to not contain cycles. Prefer this over using moduleDeps directly.

Same as moduleDeps but checked to not contain cycles. Prefer this over using moduleDeps directly.

Attributes

Inherited from:
JavaModule
def moduleDir: Path

Attributes

Inherited from:
Module
def moduleDirectChildren: Seq[Module]

Attributes

Inherited from:
Module
def moduleSegments: Segments

Attributes

Inherited from:
Module
@Scaladoc(value = "/**\n * Any ivy dependencies you want to add to this Module, in the format\n * mvn\"org::name:version\" for Scala dependencies or mvn\"org:name:version\"\n * for Java dependencies\n */")
def mvnDeps: Simple[Seq[Dep]]

Any ivy dependencies you want to add to this Module, in the format mvn"org::name:version" for Scala dependencies or mvn"org:name:version" for Java dependencies

Any ivy dependencies you want to add to this Module, in the format mvn"org::name:version" for Scala dependencies or mvn"org:name:version" for Java dependencies

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * What platform suffix to use for publishing, e.g. `_sjs` for Scala.js\n * projects\n */")
def platformSuffix: Simple[String]

What platform suffix to use for publishing, e.g. _sjs for Scala.js projects

What platform suffix to use for publishing, e.g. _sjs for Scala.js projects

Attributes

Inherited from:
JavaModule
override def prepareOffline(all: Flag): Command[Seq[PathRef]]

Value parameters

all

If true fetches also source dependencies

Attributes

Definition Classes
KotlinModule -> JavaModule -> OfflineSupportModule
Inherited from:
KotlinModule
@Scaladoc(value = "/**\n * What shell script to use to launch the executable generated by `assembly`.\n * Defaults to a generic \"universal\" launcher that should work for Windows,\n * OS-X and Linux\n */")
def prependShellScript: Simple[String]

What shell script to use to launch the executable generated by assembly. Defaults to a generic "universal" launcher that should work for Windows, OS-X and Linux

What shell script to use to launch the executable generated by assembly. Defaults to a generic "universal" launcher that should work for Windows, OS-X and Linux

Attributes

Inherited from:
AssemblyModule
@Scaladoc(value = "/** The direct and indirect dependencies of this module */")
def recursiveModuleDeps: Seq[JavaModule]

The direct and indirect dependencies of this module

The direct and indirect dependencies of this module

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/** The direct and indirect runtime module dependencies of this module */")
def recursiveRunModuleDeps: Seq[JavaModule]

The direct and indirect runtime module dependencies of this module

The direct and indirect runtime module dependencies of this module

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The repositories used to resolve dependencies with [[classpath()]]. This\n * takes Coursier repository strings as input which are defined here:\n *\n * - https://github.com/coursier/coursier/blob/main/docs/pages/reference-repositories.md\n *\n * For example:\n *\n * - https://repo1.maven.org/maven2\n * Maven Central which is the most commonly used Maven repository\n *\n * - file:///Users/alex/test-repo\n * A local repository cache on disk\n *\n * - file://${ivy.home-${user.home}/.ivy2}/local/[defaultPattern]\n * The local Ivy2 repository where Mill, Scala CLI,\n * or sbt publish to when asked to publish locally\n *\n * - file://${user.home}/.m2/repository\n * the local Maven repository. Use of this is not recommended for reasons explained in the link above\n *\n * - https://maven.google.com\n * Google-managed repository that distributes some Android artifacts in particular\n */")
def repositories: Simple[Seq[String]]

The repositories used to resolve dependencies with classpath(). This takes Coursier repository strings as input which are defined here:

The repositories used to resolve dependencies with classpath(). This takes Coursier repository strings as input which are defined here:

For example:

Attributes

Inherited from:
CoursierModule
@Scaladoc(value = "/**\n * Repositories are transitively aggregated from upstream modules, following\n * the behavior of Maven, Gradle, and SBT\n */")
override def repositoriesTask: Task[Seq[Repository]]

Repositories are transitively aggregated from upstream modules, following the behavior of Maven, Gradle, and SBT

Repositories are transitively aggregated from upstream modules, following the behavior of Maven, Gradle, and SBT

Attributes

Definition Classes
JavaModule -> CoursierModule
Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Customize the coursier resolution process.\n * This is rarely needed to changed, as the default try to provide a\n * highly reproducible resolution process. But sometime, you need\n * more control, e.g. you want to add some OS or JDK specific resolution properties\n * which are sometimes used by Maven and therefore found in dependency artifact metadata.\n * For example, the JavaFX artifacts are known to use OS specific properties.\n * To fix resolution for JavaFX, you could override this task like the following:\n * {{{\n * override def resolutionCustomizer = Task.Anon {\n * Some( (r: coursier.core.Resolution) =>\n * r.withOsInfo(coursier.core.Activation.Os.fromProperties(sys.props.toMap))\n * )\n * }\n * }}}\n * @return\n */")
def resolutionCustomizer: Task[Option[Resolution => Resolution]]

Customize the coursier resolution process. This is rarely needed to changed, as the default try to provide a highly reproducible resolution process. But sometime, you need more control, e.g. you want to add some OS or JDK specific resolution properties which are sometimes used by Maven and therefore found in dependency artifact metadata. For example, the JavaFX artifacts are known to use OS specific properties. To fix resolution for JavaFX, you could override this task like the following:

Customize the coursier resolution process. This is rarely needed to changed, as the default try to provide a highly reproducible resolution process. But sometime, you need more control, e.g. you want to add some OS or JDK specific resolution properties which are sometimes used by Maven and therefore found in dependency artifact metadata. For example, the JavaFX artifacts are known to use OS specific properties. To fix resolution for JavaFX, you could override this task like the following:

   override def resolutionCustomizer = Task.Anon {
     Some( (r: coursier.core.Resolution) =>
       r.withOsInfo(coursier.core.Activation.Os.fromProperties(sys.props.toMap))
     )
   }

Attributes

Inherited from:
CoursierModule
override def resolutionParams: Task[ResolutionParams]

Resolution parameters, allowing to customize resolution internals

Resolution parameters, allowing to customize resolution internals

This rarely needs to be changed. This allows to disable the new way coursier handles BOMs since coursier 2.1.17 (used in Mill since 0.12.3) for example, with:

 def resolutionParams = super.resolutionParams()
   .withEnableDependencyOverrides(Some(false))

Note that versions forced with Dep#forceVersion() take over forced versions manually set in resolutionParams. The former should be favored to force versions in dependency resolution.

The Scala version set via ScalaModule#scalaVersion also takes over any Scala version provided via ResolutionParams#scalaVersionOpt.

The default configuration set in ResolutionParams#defaultConfiguration is ignored when Mill fetches dependencies to be passed to the compiler (equivalent to Maven "compile scope"). In that case, it forces the default configuration to be "compile". On the other hand, when fetching dependencies for runtime (equivalent to Maven "runtime scope"), the value in ResolutionParams#defaultConfiguration is used.

Attributes

Definition Classes
KotlinModule -> CoursierModule
Inherited from:
KotlinModule
def resolvePublishDependency: Task[Dep => Dependency]

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Build the assembly for third-party dependencies separate from the current\n * classpath\n *\n * This should allow much faster assembly creation in the common case where\n * third-party dependencies do not change\n */")
def resolvedIvyAssembly: Simple[Assembly]

Build the assembly for third-party dependencies separate from the current classpath

Build the assembly for third-party dependencies separate from the current classpath

This should allow much faster assembly creation in the common case where third-party dependencies do not change

Attributes

Inherited from:
AssemblyModule
@Scaladoc(value = "/**\n * Resolved dependencies\n */")
def resolvedMvnDeps: Simple[Seq[PathRef]]

Resolved dependencies

Resolved dependencies

Attributes

Inherited from:
JavaModule
def resolvedRunMvnDeps: Simple[Seq[PathRef]]

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The folders where the resource files for this module live.\n * If you need resources to be seen by the compiler, use [[compileResources]].\n */")
def resources: Simple[Seq[PathRef]]

The folders where the resource files for this module live. If you need resources to be seen by the compiler, use compileResources.

The folders where the resource files for this module live. If you need resources to be seen by the compiler, use compileResources.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Runs this module\'s code in a subprocess and waits for it to finish\n */")
def run(args: Task[Args]): Command[Unit]

Runs this module's code in a subprocess and waits for it to finish

Runs this module's code in a subprocess and waits for it to finish

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Runs this module\'s code in a background process, until it dies or\n * `runBackground` is used again. This lets you continue using Mill while\n * the process is running in the background: editing files, compiling, and\n * only re-starting the background process when you\'re ready.\n *\n * You can also use `-w foo.runBackground` to make Mill watch for changes\n * and automatically recompile your code & restart the background process\n * when ready. This is useful when working on long-running server processes\n * that would otherwise run forever\n */")
def runBackground(args: Task[Args]): Command[Unit]

Runs this module's code in a background process, until it dies or runBackground is used again. This lets you continue using Mill while the process is running in the background: editing files, compiling, and only re-starting the background process when you're ready.

Runs this module's code in a background process, until it dies or runBackground is used again. This lets you continue using Mill while the process is running in the background: editing files, compiling, and only re-starting the background process when you're ready.

You can also use -w foo.runBackground to make Mill watch for changes and automatically recompile your code & restart the background process when ready. This is useful when working on long-running server processes that would otherwise run forever

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * If true, stdout and stderr of the process executed by `runBackground`\n * or `runMainBackground` is sent to mill\'s stdout/stderr (which usually\n * flow to the console).\n *\n * If false, output will be directed to files `stdout.log` and `stderr.log`\n * in `runBackground.dest` (or `runMainBackground.dest`)\n */")

If true, stdout and stderr of the process executed by runBackground or runMainBackground is sent to mill's stdout/stderr (which usually flow to the console).

If true, stdout and stderr of the process executed by runBackground or runMainBackground is sent to mill's stdout/stderr (which usually flow to the console).

If false, output will be directed to files stdout.log and stderr.log in runBackground.dest (or runMainBackground.dest)

Attributes

Inherited from:
RunModule
def runBackgroundTask(mainClass: Task[String], args: Task[Args]): Task[Unit]

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * All classfiles and resources from upstream modules and dependencies\n * necessary to run this module\'s code after compilation\n */")
override def runClasspath: Simple[Seq[PathRef]]

All classfiles and resources from upstream modules and dependencies necessary to run this module's code after compilation

All classfiles and resources from upstream modules and dependencies necessary to run this module's code after compilation

Attributes

Definition Classes
JavaModule -> RunModule
Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Runs this module\'s code in a subprocess and waits for it to finish\n */")
def runForkedTask(mainClass: Task[String], args: Task[Args]): Task[Unit]

Runs this module's code in a subprocess and waits for it to finish

Runs this module's code in a subprocess and waits for it to finish

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Runs this module\'s code in-process within an isolated classloader. This is\n * faster than `run`, but in exchange you have less isolation between runs\n * since the code can dirty the parent Mill process and potentially leave it\n * in a bad state.\n */")
def runLocal(args: Task[Args]): Command[Unit]

Runs this module's code in-process within an isolated classloader. This is faster than run, but in exchange you have less isolation between runs since the code can dirty the parent Mill process and potentially leave it in a bad state.

Runs this module's code in-process within an isolated classloader. This is faster than run, but in exchange you have less isolation between runs since the code can dirty the parent Mill process and potentially leave it in a bad state.

Attributes

Inherited from:
RunModule
def runLocalTask(mainClass: Task[String], args: Task[Args]): Task[Unit]

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Same as `run`, but lets you specify a main class to run\n */")
def runMain(mainClass: String, args: String*): Command[Unit]

Same as run, but lets you specify a main class to run

Same as run, but lets you specify a main class to run

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Same as `runBackground`, but lets you specify a main class to run\n */")
def runMainBackground(mainClass: String, args: String*): Command[Unit]

Same as runBackground, but lets you specify a main class to run

Same as runBackground, but lets you specify a main class to run

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * Same as `runLocal`, but lets you specify a main class to run\n */")
def runMainLocal(mainClass: String, args: String*): Command[Unit]

Same as runLocal, but lets you specify a main class to run

Same as runLocal, but lets you specify a main class to run

Attributes

Inherited from:
RunModule
@Scaladoc(value = "/**\n * The runtime-only direct dependencies of this module. These *are* transitive,\n * and so get propagated to downstream modules automatically\n */")
def runModuleDeps: Seq[JavaModule]

The runtime-only direct dependencies of this module. These are transitive, and so get propagated to downstream modules automatically

The runtime-only direct dependencies of this module. These are transitive, and so get propagated to downstream modules automatically

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Same as [[moduleDeps]] but checked to not contain cycles.\n * Prefer this over using [[moduleDeps]] directly.\n */")
final def runModuleDepsChecked: Seq[JavaModule]

Same as moduleDeps but checked to not contain cycles. Prefer this over using moduleDeps directly.

Same as moduleDeps but checked to not contain cycles. Prefer this over using moduleDeps directly.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Additional dependencies, only present at runtime. Useful for e.g.\n * selecting different versions of a dependency to use at runtime after your\n * code has already been compiled.\n */")
def runMvnDeps: Simple[Seq[Dep]]

Additional dependencies, only present at runtime. Useful for e.g. selecting different versions of a dependency to use at runtime after your code has already been compiled.

Additional dependencies, only present at runtime. Useful for e.g. selecting different versions of a dependency to use at runtime after your code has already been compiled.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Control whether `run*`-tasks should use an args file to pass command line args, if possible.\n */")
def runUseArgsFile: Simple[Boolean]

Control whether run*-tasks should use an args file to pass command line args, if possible.

Control whether run*-tasks should use an args file to pass command line args, if possible.

Attributes

Inherited from:
RunModule
def runner: Task[Runner]

Attributes

Inherited from:
RunModule
def sanitizeUri(uri: PathRef): String

Attributes

Inherited from:
JavaModule
def sanitizeUri(uri: Path): String

Attributes

Inherited from:
JavaModule
def sanitizeUri(uri: String): String

Attributes

Inherited from:
JavaModule
def semanticDbData: Simple[PathRef]

Attributes

Inherited from:
SemanticDbJavaModule
def semanticDbJavaVersion: Simple[String]

Attributes

Inherited from:
SemanticDbJavaModule
def semanticDbScalaVersion: Simple[String]

Attributes

Inherited from:
SemanticDbJavaModule
def semanticDbVersion: Simple[String]

Attributes

Inherited from:
SemanticDbJavaModule
@Scaladoc(value = "/**\n * Show the module dependencies.\n * @param recursive If `true` include all recursive module dependencies, else only show direct dependencies.\n */")
def showModuleDeps(recursive: Boolean): Command[Unit]

Show the module dependencies.

Show the module dependencies.

Value parameters

recursive

If true include all recursive module dependencies, else only show direct dependencies.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Command to print the transitive dependency tree to STDOUT.\n */")
def showMvnDepsTree(args: MvnDepsTreeArgs): Command[String]

Command to print the transitive dependency tree to STDOUT.

Command to print the transitive dependency tree to STDOUT.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Skip Idea project file generation.\n */")
override def skipIdea: Boolean

Skip Idea project file generation.

Skip Idea project file generation.

Attributes

Definition Classes
GenIdeaModule -> GenIdeaModuleApi
Inherited from:
GenIdeaModule
@Scaladoc(value = "/**\n * The source jar, containing only source code for publishing to Maven Central\n */")
def sourceJar: Simple[PathRef]

The source jar, containing only source code for publishing to Maven Central

The source jar, containing only source code for publishing to Maven Central

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The folders where the source files for this module live\n */")
def sources: Simple[Seq[PathRef]]

The folders where the source files for this module live

The folders where the source files for this module live

Attributes

Inherited from:
JavaModule
def sourcesFolders: Seq[SubPath]

Attributes

Inherited from:
JavaModule
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
Module -> Any
Inherited from:
Module
@Scaladoc(value = "/**\n * The transitive version of `compileClasspath`\n */")
def transitiveCompileClasspath: Simple[Seq[PathRef]]

The transitive version of compileClasspath

The transitive version of compileClasspath

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Coursier projects of all the transitive module dependencies of this module\n *\n * Doesn\'t include the coursier project of the current module, see [[coursierProject]] for that.\n */")
def transitiveCoursierProjects: Task[Seq[Project]]

Coursier projects of all the transitive module dependencies of this module

Coursier projects of all the transitive module dependencies of this module

Doesn't include the coursier project of the current module, see coursierProject for that.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Almost the same as [[transitiveLocalClasspath]], but using the [[jar]]s instead of [[localClasspath]].\n */")
def transitiveJars: Simple[Seq[PathRef]]

Almost the same as transitiveLocalClasspath, but using the jars instead of localClasspath.

Almost the same as transitiveLocalClasspath, but using the jars instead of localClasspath.

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The transitive version of `localClasspath`\n */")
def transitiveLocalClasspath: Simple[Seq[PathRef]]

The transitive version of localClasspath

The transitive version of localClasspath

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * All direct and indirect module dependencies of this module, including\n * compile-only dependencies: basically the modules whose classpath are needed\n * at compile-time.\n *\n * Note that `compileModuleDeps` are defined to be non-transitive, so we only\n * look at the direct `compileModuleDeps` when assembling this list\n */")
def transitiveModuleCompileModuleDeps: Seq[JavaModule]

All direct and indirect module dependencies of this module, including compile-only dependencies: basically the modules whose classpath are needed at compile-time.

All direct and indirect module dependencies of this module, including compile-only dependencies: basically the modules whose classpath are needed at compile-time.

Note that compileModuleDeps are defined to be non-transitive, so we only look at the direct compileModuleDeps when assembling this list

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Like `recursiveModuleDeps` but also include the module itself,\n * basically the modules whose classpath are needed at runtime\n */")
def transitiveModuleDeps: Seq[JavaModule]

Like recursiveModuleDeps but also include the module itself, basically the modules whose classpath are needed at runtime

Like recursiveModuleDeps but also include the module itself, basically the modules whose classpath are needed at runtime

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * All direct and indirect module dependencies of this module, including\n * compile-only dependencies: basically the modules whose classpath are needed\n * at runtime.\n *\n * Note that `runModuleDeps` are defined to be transitive\n */")
def transitiveModuleRunModuleDeps: Seq[JavaModule]

All direct and indirect module dependencies of this module, including compile-only dependencies: basically the modules whose classpath are needed at runtime.

All direct and indirect module dependencies of this module, including compile-only dependencies: basically the modules whose classpath are needed at runtime.

Note that runModuleDeps are defined to be transitive

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Like `recursiveModuleDeps` but also include the module itself,\n * basically the modules whose classpath are needed at runtime\n */")
def transitiveRunModuleDeps: Seq[JavaModule]

Like recursiveModuleDeps but also include the module itself, basically the modules whose classpath are needed at runtime

Like recursiveModuleDeps but also include the module itself, basically the modules whose classpath are needed at runtime

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Additional jars, classfiles or resources to add to the classpath directly\n * from disk rather than being downloaded from Maven Central or other package\n * repositories\n */")
def unmanagedClasspath: Simple[Seq[PathRef]]

Additional jars, classfiles or resources to add to the classpath directly from disk rather than being downloaded from Maven Central or other package repositories

Additional jars, classfiles or resources to add to the classpath directly from disk rather than being downloaded from Maven Central or other package repositories

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * Build the assembly for upstream dependencies separate from the current\n * classpath\n *\n * This should allow much faster assembly creation in the common case where\n * upstream dependencies do not change\n */")
def upstreamAssembly: Simple[Assembly]

Build the assembly for upstream dependencies separate from the current classpath

Build the assembly for upstream dependencies separate from the current classpath

This should allow much faster assembly creation in the common case where upstream dependencies do not change

Attributes

Inherited from:
AssemblyModule
@Scaladoc(value = "/**\n * All upstream classfiles and resources necessary to build and executable\n * assembly, but without this module\'s contribution\n */")
def upstreamAssemblyClasspath: Simple[Seq[PathRef]]

All upstream classfiles and resources necessary to build and executable assembly, but without this module's contribution

All upstream classfiles and resources necessary to build and executable assembly, but without this module's contribution

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * The upstream compilation output of all this module\'s upstream modules\n */")
def upstreamCompileOutput: Simple[Seq[CompilationResult]]

The upstream compilation output of all this module's upstream modules

The upstream compilation output of all this module's upstream modules

Attributes

Inherited from:
JavaModule
override def upstreamIvyAssemblyClasspath: Simple[Seq[PathRef]]

Upstream classfiles and resources from third-party libraries necessary to build an executable assembly

Upstream classfiles and resources from third-party libraries necessary to build an executable assembly

Attributes

Definition Classes
JavaModule -> AssemblyModule
Inherited from:
JavaModule
override def upstreamLocalAssemblyClasspath: Simple[Seq[PathRef]]

Upstream classfiles and resources from locally-built modules necessary to build an executable assembly, but without this module's contribution

Upstream classfiles and resources from locally-built modules necessary to build an executable assembly, but without this module's contribution

Attributes

Definition Classes
JavaModule -> AssemblyModule
Inherited from:
JavaModule
def useShortJvmPath(jvmId: String): Boolean

Attributes

Inherited from:
JavaHomeModule
@Scaladoc(value = "/**\n * Files extensions that need to be managed by Zinc together with class files.\n * This means, if zinc needs to remove a class file, it will also remove files\n * which match the class file basename and a listed file extension.\n */")
def zincAuxiliaryClassFileExtensions: Simple[Seq[String]]

Files extensions that need to be managed by Zinc together with class files. This means, if zinc needs to remove a class file, it will also remove files which match the class file basename and a listed file extension.

Files extensions that need to be managed by Zinc together with class files. This means, if zinc needs to remove a class file, it will also remove files which match the class file basename and a listed file extension.

Attributes

Inherited from:
JavaModule
def zincIncrementalCompilation: Simple[Boolean]

Attributes

Inherited from:
JavaModule
@Scaladoc(value = "/**\n * If `true`, we always show problems (errors, warnings, infos) found in all source files, even when they have not changed since the previous incremental compilation.\n * When `false`, we report only problems for files which we re-compiled.\n */")
def zincReportCachedProblems: Simple[Boolean]

If true, we always show problems (errors, warnings, infos) found in all source files, even when they have not changed since the previous incremental compilation. When false, we report only problems for files which we re-compiled.

If true, we always show problems (errors, warnings, infos) found in all source files, even when they have not changed since the previous incremental compilation. When false, we report only problems for files which we re-compiled.

Attributes

Inherited from:
JavaModule

Inherited and Abstract methods

@Scaladoc(value = "/**\n * The Kotlin version to be used (for API and Language level settings).\n */")
def kotlinVersion: Simple[String]

The Kotlin version to be used (for API and Language level settings).

The Kotlin version to be used (for API and Language level settings).

Attributes

Inherited from:
KotlinModule