Процесс загрузки project.jc

Содержание

Загрузка проекта из project.jc производится в 3 этапа.

Этап 1

Сначала ищется файл .jc-root начиная с каталога проекта и вверх по иерархии каталогов. Если файл .jc-root найден и в этом каталоге имеется файл project.jc, то сначала загружается project.jc из каталога с .jc-root.

Note

Если файл проекта имеет имя, отличное от 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.