-
-
Notifications
You must be signed in to change notification settings - Fork 180
Target Directory
NOTE: As of Boot 2.5, implicit target directory creation has been deprecated in favor of the builtin
target
task. See FAQ for more information.
The target directory is the directory into which all output files will be copied to at the end of any task pipeline's pre-processing.
The target directory is defined in the Boot environment with the :target-path
env key. By default, its path is target
, relative to the current working directory.
When a pipeline's tasks are run, the tasks pass filesets referring to temp directories. Each consecutive task may add temp resource, source, asset, and cache files to a temp directory, after which it will [[sync it with the filesystem using commit!
|filesets#sync fileset to disk]]. These different types of files act in either input or output roles (or both). After the final task in the pipeline completes its pre-processing, the fileset cannot be modified anymore.
Before post-processing occurs (in which the tasks perform side effects in reverse order), Boot will synchronize the real target directory with only those temp files that have the output role (i.e., resource- and asset-type files) that are in the last fileset that any task commit!
ed.
Boot will usually delete any already-existing files from the target directory that are not also in the fileset's output files (though it will not unnecessarily delete files that also exist as output files in the fileset, though it may overwrite them—similarly to rsync --delete
).
However, if no task in the pipeline committed any new file to the fileset, then the target directory will not be modified at all—tasks that only read things from the fileset or use their own private temp directories will not affect the target directory. This is to prevent boot repl
and similar tasks from wiping the target directory every time they're run.
You can find other developers and users in the #hoplon
channel on freenode IRC or the boot slack channel.
If you have questions or need help, please visit the Discourse site.
- Environments
- Boot environment
- Java environment
- Tasks
- Built-ins
- Third-party
- Tasks Options
- Filesets
- Target Directory
- Pods
- Boot Exceptions
- Configuring Boot
- Updating Boot
- Setting Clojure version
- JVM Options
- S3 Repositories
- Scripts
- Task Writer's Guide
- Require inside Tasks
- Boot for Leiningen Users
- Boot in Leiningen Projects
- Repl reloading
- Repository Credentials and Deploying
- Snippets
- Troubleshooting
- FAQ
- API docs
- Core
- Pod
- Util