package define
- Source
- package.scala
- Alphabetic
- By Inheritance
- define
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- class Args extends AnyRef
Represents an unstructured sequence of command-line arguments that can be passed to Mill commands; similar to
mainargs.Leftover
. - abstract class BaseModule extends BaseClass with Module with BaseModule0
- trait BaseModule0 extends BaseClass with Module
- case class Caller(value: Any) extends Product with Serializable
- class Command[+T] extends Task[T] with NamedTask[T]
- class Cross[M <: define.Cross.Module[_]] extends BaseClass with Module
Models "cross-builds": sets of duplicate builds which differ only in the value of one or more "case" variables whose values are determined at runtime.
Models "cross-builds": sets of duplicate builds which differ only in the value of one or more "case" variables whose values are determined at runtime. Used via:
object foo extends Cross[FooModule]("bar", "baz", "qux") trait FooModule extends Cross.Module[String]{ ... crossValue ... }
- trait Ctx extends AnyRef
The contextual information provided by a mill.define.Module.
The contextual information provided by a mill.define.Module.
- Annotations
- @implicitNotFound()
- case class Discover extends Product with Serializable
Macro to walk the module tree and generate
mainargs
entrypoints for anyTask.Command
methods that it finds.Macro to walk the module tree and generate
mainargs
entrypoints for anyTask.Command
methods that it finds.Note that unlike the rest of Mill's module-handling logic which uses Java reflection, generation of entrypoints requires typeclass resolution, and so needs to be done at compile time. Thus, we walk the entire module tree, collecting all the module
Class[_]
s we can find, and for each one generate themainargs.MainData
containing metadata and resolved typeclasses for all theTask.Command
methods we find. This mapping fromClass[_]
toMainData
can then be used later to look up theMainData
for any module. - trait DynamicModule extends BaseClass with Module
A module which you can override millModuleDirectChildren to dynamically enable or disable child modules at runtime
- case class EnclosingClass(value: Class[_]) extends Product with Serializable
- abstract class ExternalModule extends BaseModule
- class InputImpl[T] extends Task[T] with Target[T]
- trait LowPriCtx extends AnyRef
- trait Module extends BaseClass
Represents a namespace within the Mill build hierarchy, containing nested modules or tasks.
Represents a namespace within the Mill build hierarchy, containing nested modules or tasks.
Module
is a class meant to be extended by
s *only*, in order to propagate the implicit parameters forward to the final concrete instantiation site so they can capture the enclosing/line information of the concrete instance.trait
- case class ModuleRef[+T <: Module](t: T) extends Product with Serializable
Used to refer to a module from another module without including the target module as a child-module of the first.
- case class ModuleTask[+T](module: Module) extends Task[T] with NamedTask[T] with Product with Serializable
- class NamedParameterOnlyDummy extends AnyRef
Dummy class used to mark parameters that come after it as named only parameters
- trait NamedTask[+T] extends Task[T]
Represents a task that can be referenced by its path segments.
Represents a task that can be referenced by its path segments.
Task{...}
targets,Task.Input
,Task.Worker
, etc. but not including anonymousTask.Anon
orT.traverse
etc. instances - class PersistentImpl[+T] extends TargetImpl[T]
- sealed trait Segment extends AnyRef
- case class Segments extends Product with Serializable
Models a path with the Mill build hierarchy, e.g.
Models a path with the Mill build hierarchy, e.g.
amm.util[2.11].test.compile
. Segments must start with a Segment.Label..
-separated segments are Segment.Labels, while[]
-delimited segments are Segment.Crosss - class SourceImpl extends InputImpl[api.PathRef]
- class SourcesImpl extends InputImpl[Seq[api.PathRef]]
- trait Target[+T] extends Task[T] with NamedTask[T]
A Target is a NamedTask that is cached on disk; either a TargetImpl or an InputImpl
- class TargetImpl[+T] extends Task[T] with Target[T]
- abstract class Task[+T] extends Ops[T] with Applyable[Task, T]
Models a single node in the Mill build graph, with a list of inputs and a single output of type T.
Models a single node in the Mill build graph, with a list of inputs and a single output of type T.
Generally not instantiated manually, but instead constructed via the Target.apply & similar macros.
- class TaskBase extends Applyer[Task, Task, Result, api.Ctx] with TraverseCtxHolder
The mill.define.Target companion object, usually aliased as T, provides most of the helper methods and macros used to build task graphs.
The mill.define.Target companion object, usually aliased as T, provides most of the helper methods and macros used to build task graphs. methods like
T.
apply,T.
sources,T.
command allow you to define the tasks, while methods likeT.
dest,T.
log orT.
env provide the core APIs that are provided to a task implementation - trait TaskModule extends BaseClass with Module
A Module that has a defaultCommandName that will be automatically executed if the module name is provide at the Mill command line
- class Worker[+T] extends Task[T] with NamedTask[T]
Deprecated Type Members
- type Input[T] = Target[T]
- Annotations
- @deprecated
- Deprecated
(Since version Mill after 0.11.0-M8) Use mill.define.Target instead.
- type Persistent[T] = Target[T]
- Annotations
- @deprecated
- Deprecated
(Since version Mill after 0.11.0-M8) Use mill.define.Target instead.
- type Source = Target[api.PathRef]
- Annotations
- @deprecated
- Deprecated
(Since version Mill after 0.11.0-M8) Use mill.define.Target instead.
- type Sources = Target[Seq[api.PathRef]]
- Annotations
- @deprecated
- Deprecated
(Since version Mill after 0.11.0-M8) Use mill.define.Target instead.
Value Members
- object Applicative
A generic Applicative-functor macro: translates calls to
A generic Applicative-functor macro: translates calls to
Applier.apply{ ... applyable1.apply() ... applyable2.apply() ... }
into
Applier.zipMap(applyable1, applyable2){ (a1, a2, ctx) => ... a1 ... a2 ... }
- Annotations
- @internal()
- object Args
- object BaseModule
- object Caller extends Serializable
- object Cross
- object Ctx extends LowPriCtx
- object Discover extends Serializable
- object EnclosingClass extends Serializable
- object Module
- object Segment
- object Segments extends Serializable
- object Target extends TaskBase
- object Task extends TaskBase
- object TaskBase