Процесс загрузки project.jc
Загрузка проекта из project.jc
производится в 3 этапа.
Этап 1
Сначала ищется файл .jc-root
начиная с каталога проекта и вверх по иерархии
каталогов. Если файл .jc-root
найден и в этом каталоге имеется файл project.jc
,
то сначала загружается project.jc
из каталога с .jc-root
.
Если файл проекта имеет имя, отличное от project.jc
, то считается, что это особенный
утилитный проект и этап пропускается.
Этап 2
Затем текст project.jc
анализируется на предмет наличия closure beforeLoad
.
Она должна быть описана так:
class P extends ProjectScript {
static beforeLoad = {
}
}
Если такая closure имеется, то ее содержимое выполняется в контексте проекта.
Сам проект еще не загружен и его текст не скомпилирован.
В процессе выполнения доступны все свойства и методы
класса jandcode.jc.ProjectScript
.
Обычное применение beforeLoad
, это загрузка связанных проектов и
настройка classpath
:
class P extends ProjectScript {
static beforeLoad = {
load('..')
load('../../common-libs')
classpath('my-lib1')
classpath(['my-lib2', 'my-lib3'])
}
}
Этап 3
После выполнения beforeLoad
компилируется и выполняется project.jc
.