You can make a command run when certain files change by prefixing the
~. Monitoring is terminated when
enter is pressed. This
triggered execution is configured by the
watch setting, but typically
the basic settings
pollInterval are modified as
described in later sections.
The original use-case for triggered execution was continuous compilation:
> ~ test:compile > ~ compile
You can use the triggered execution feature to run any command or task,
however. The following will poll for changes to your source code (main
or test) and run
testOnly for the specified test.
> ~ testOnly example.TestA
The command passed to
~ may be any command string, so multiple
commands may be run by separating them with a semicolon. For example,
> ~ ;a ;b
a and then
b when sources change.
watchSourcesdefines the files for a single project that are monitored for changes. By default, a project watches resources and Scala and Java sources.
watchTransitiveSourcesthen combines the
watchSourcesfor the current project and all execution and classpath dependencies (see .scala build definition for details on inter-project dependencies).
To add the file
demo/example.txt to the files to watch,
watchSources += baseDirectory.value / "demo" / "examples.txt"
pollInterval selects the interval between polling for changes in
milliseconds. The default value is
500 ms. To change it to
import scala.concurrent.duration._ pollInterval := 1.second