-
Notifications
You must be signed in to change notification settings - Fork 0
User Guide
В этом руководстве будет кратко продемонстрировано, как использовать библиотеку C4 DSL Patterns для описания архитектурных шаблонов в Structurizr DSL.
Мы пройдём через минимальный рабочий пример,
где создадим простой шаблон MyPattern с двумя параметрами (name и age),
и используем его в проекте structurizr.
Создайте Java-проект с любой удобной системой сборки (например, Gradle или Maven).
Добавьте Maven репозиторий https://maven.pkg.github.com/Nifacy/c4-patterns
(см. Working with the Gradle registry):
repositories {
maven {
url = uri("https://maven.pkg.github.com/Nifacy/c4-patterns")
credentials {
username = "<GITHUB-USERNAME>"
password = "<GITHUB-ACCESS-TOKEN>"
}
}
}Подключите зависимости:
dependencies {
implementation 'io.github.nifacy.c4patterns:pattern-lib:1.0'
implementation 'com.structurizr:structurizr-dsl:3.2.1'
}Создайте Java-класс шаблона, унаследованный от базового класса для описания шаблонов Pattern,
и опишите схему параметров в классе Arguments:
import com.structurizr.dsl.StructurizrDslPluginContext;
import io.github.nifacy.c4patterns.lib.Pattern;
import io.github.nifacy.c4patterns.lib.params.Schema;
public class MyPattern extends Pattern<MyPattern.Arguments> {
static class Arguments implements Schema {
String name;
int age;
}
@Override
protected void apply(StructurizrDslPluginContext context, Arguments arguments) {
System.out.println("name: " + arguments.name);
System.out.println("age: " + arguments.age);
}
}Создайте директорию workspace/ со следующей структурой:
workspace/
workspace.dsl // пока может быть пустым
plugins/ // сюда поместим плагины
Соберите ваш шаблон в .jar и скопируйте его в workspace/plugins.
Также добавьте JAR архив pattern-lib.jar из релиза, который представляет упакованную библиотеку pattern-lib.
В итоге структура будет:
workspace/
workspace.dsl
plugins/
my-pattern.jar
pattern-lib.jar
Теперь можно использовать шаблон в workspace.dsl. Добавьте:
workspace "Layered architecture" {
model {
$pattern MyPattern {
name Bob
age 21
}
}
}Чтобы запустить workspace с поддержкой шаблонов:
-
Скачайте:
-
Запустите:
java -javaagent:path/to/pattern-syntax-plugin.jar \
-jar path/to/structurizr-lite.jar \
path/to/workspace/В консоли вы увидите:
name: Bob
age: 21
Вы успешно создали и подключили архитектурный шаблон к Structurizr DSL