Skip to content

Imports

Import all recipes from another file:

@import "scripts/docker.jake"

This makes all recipes from docker.jake available.

Import with a prefix to avoid name collisions:

@import "scripts/deploy.jake" as deploy

Access recipes as deploy.production, deploy.staging, etc.

scripts/docker.jake:

task build:
docker build -t myapp .
task push:
docker push myapp

Jakefile:

@import "scripts/docker.jake" as docker
task release: [build, docker.build, docker.push]
echo "Released!"
project/
├── Jakefile
└── jake/
├── docker.jake
├── deploy.jake
└── test.jake
# Jakefile
@import "jake/docker.jake" as docker
@import "jake/deploy.jake" as deploy
@import "jake/test.jake" as test
@default
task all: [docker.build, test.unit, deploy.staging]
echo "Done!"
  • Paths are relative to the importing file
  • Variables from imports are not shared (scoped)
  • Recipes from imports can be used as dependencies