Maven plugin for TeaQL code generation workflows.
| Goal | Phase | Description |
|---|---|---|
teaql:gen-lib |
generate-sources |
Generate backend / domain library code |
teaql:gen-doc |
generate-sources |
Generate documentation |
teaql:gen-model |
generate-sources |
Generate frontend model |
teaql:gen-workspace |
generate-sources |
Generate a complete workspace skeleton (Gradle + Spring Boot) |
teaql:ping |
— | Verify connectivity to the TeaQL service |
teaql:show-config |
— | Print effective config |
Generate a ready-to-run Gradle + Spring Boot workspace from your model:
mvn io.teaql:teaql-maven-plugin:0.1.8:gen-workspace \
-Dteaql.input=modelThis downloads and extracts a complete workspace skeleton into ${project.basedir}/model. You can also specify a custom target directory:
mvn io.teaql:teaql-maven-plugin:0.1.8:gen-workspace \
-Dteaql.input=my-model.xml \
-Dteaql.workspaceDir=./my-projectWithout -Dteaql.input, the built-in demo model is used — handy for a smoke test:
mvn io.teaql:teaql-maven-plugin:0.1.8:gen-workspace
# → extracts into ./model
cd model
./gradlew bootRun
# → http://localhost:8080/versionAdd the plugin to pom.xml to generate code during the build:
<plugin>
<groupId>io.teaql</groupId>
<artifactId>teaql-maven-plugin</artifactId>
<version>0.1.8</version>
<executions>
<execution>
<goals><goal>gen-lib</goal></goals>
<configuration>
<input>${project.basedir}/model</input>
</configuration>
</execution>
</executions>
</plugin>mvn teaql:gen-lib -Dteaql.input=model
mvn teaql:gen-doc -Dteaql.input=model
mvn teaql:gen-model -Dteaql.input=model
mvn teaql:ping
mvn teaql:show-configMojo parameter / -D flag > Environment variable > config.yml > Built-in default
All parameters can be set via <configuration>, -D system properties, or environment variables.
| Parameter | Property | Env var | Default | Description |
|---|---|---|---|---|
input |
teaql.input |
— | (optional) | Model file or directory to upload |
serviceUrl |
teaql.serviceUrl |
TEAQL_SERVICE_URL |
https://api.teaql.io/latest/ |
Service endpoint URL |
licenseFile |
teaql.licenseFile |
TEAQL_LICENSE_FILE |
bundled public.LICENSE |
License file path |
output |
teaql.output |
TEAQL_BUILD_DIR |
${project.basedir}/build |
Output directory (gen-lib/doc/model) |
workspaceDir |
teaql.workspaceDir |
— | ${project.basedir}/model |
Workspace extraction directory (gen-workspace) |
timeoutSeconds |
teaql.timeoutSeconds |
TEAQL_TIMEOUT_SECONDS |
300 |
HTTP timeout in seconds |
Local config lives in ~/.teaql/config.yml:
service_url: https://api.teaql.io/latest/
license_file: /path/to/your.LICENSE # optional — bundled public.LICENSE used if omitted
build_dir: build
timeout_seconds: 300At startup, the plugin logs where each effective config value came from:
[INFO] config (precedence: mojo/env > config.yml > default):
[INFO] service_url = https://api.teaql.io/latest/ (from: ~/.teaql/config.yml (or built-in default))
[INFO] license_file = /home/user/.teaql/license (from: env TEAQL_LICENSE_FILE)
[INFO] build_dir = /workspace/project/build (from: mojo parameter (-Dteaql.output))
[INFO] timeout_seconds = 300 (from: ~/.teaql/config.yml (or built-in default))
mvn install