8. Исполняемые архивы .jobsar¶
← Java-доступ и импорты · Оглавление · Далее: практический гайд →
JOBS умеет запускать ZIP-архивы с расширением .jobsar как обычные скрипты. Точка входа архива — src/main.jobs.
Когда использовать .jobsar¶
Архив удобен, когда нужно распространять не один файл, а небольшой проект:
- несколько
.jobsмодулей; - Java-классы;
- сторонние
.jarбиблиотеки; - ресурсы;
- README для пользователя.
Структура проекта¶
my-tool/
jars/
classes/
resources/
src/
main.jobs
README.md
Назначение директорий:
jars/— Java-библиотеки;classes/—.javaфайлы с классами;resources/— дополнительные файлы;src/— модули.jobs;src/main.jobs— точка входа;README.md— описание для человека, интерпретатором не используется.
Команды CLI¶
Создать новую директорию проекта:
java -jar jobs.jar --new my-project
Инициализировать текущую директорию:
java -jar jobs.jar --init
Собрать архив в target/<имя-текущей-директории>.jobsar:
java -jar jobs.jar --build
Собрать и запустить архив, передав аргументы в src/main.jobs:
java -jar jobs.jar --run --name Alex
Запустить готовый архив:
java -jar jobs.jar target/my-project.jobsar --name Alex
Импорты внутри архива¶
При запуске .jobsar архив распаковывается во временную директорию. Для кода внутри архива import p"./..." и строковый import "..." сначала ищут файлы от корня распакованного пакета.
Поэтому внутренние файлы импортируются путём от корня пакета:
import p"./src/mod.jobs" as Mod
import p"./classes/Foo.java" as Foo
import "./jars/library.jar"
Если нужно обратиться к файлу вне пакета по относительному пути, используйте выход на уровень выше. Такой путь считается относительно директории, где расположен исходный .jobsar:
import p"../shared.jobs" as Shared
exec внутри архива¶
Команды exec(...) в пакетном режиме запускаются с рабочей директорией, равной директории исходного архива.
$result = exec( pwd )
print $result.out
Минимальный src/main.jobs¶
params {
$name String = "World"
}
println "Hello from jobsar, $name!"
← Java-доступ и импорты · Оглавление · Далее: практический гайд →