Download Kukulkan VS Code Extension
.deb
o ejecutable .exe
){PATH_DE_JDK}/bin
)help
: Display help about available commands.clear
: Clear the shell screenstacktrace
: Display the full stacktrace of the last errorstop-process
: Detiene un proceso JavaNota:
Kukulkan Shell cuenta con función de autocompletado de los comandos al presionar la tecla TAB.
Por ejemplo, sta
+ TAB
completará el comando stacktrace
en la línea de comandos.
pwd
: Show the current directioncd
: Change directorydir
, ll
, ls
: List the currents filesNAME
create-project - Generate a Project from an Archetype Catalog
SYNOPSYS
create-project [--app-name] string [--packaging] string [[--database-type] database-type]
OPTIONS
--app-name string
[Mandatory]
[no puede ser null]
--packaging string
[Mandatory]
[no puede ser null]
--database-type database-type
[Optional, default = NO_SQL_MONGODB]
Ejemplo:
create-project --app-name demo --packaging mx.infotec.dads.demo --database-type SQL_MYSQL
Nota: Si se encuentra git instalado se realizan las siguientes acciones luego de crear el nuevo proyecto:
develop
y se mueve hacia dicha ramaCuando se navega a un directorio que contiene a la raíz de un proyecto generado con Kukulkán, el prompt se muestra diferente:
kukulkan @app @git/develop
@app
: indica que el directorio contiene un proyecto generado con Kukulkán@git/develop
: indica que el proyecto utiliza git como Software de Control de Versiones, seguido del nombre de la rama en que se encuentra el proyecto.NAME
config - Configurate the project
SYNOPSYS
config [[--type] configuration-type]
OPTIONS
--type configuration-type
[Optional, default = FRONT_END]
Este comando es un wrapper de los siguientes comandos:
yarn install
: Instala las dependencias Nodebower install
: Instala las dependencias Bowergulp
: Inyecta dependencias al index.html
NAME
run - Run a Spring-Boot App
SYNOPSYS
run [[--profile] profile]
OPTIONS
--profile profile
[Optional, default = DEV]
El DSL de Kukulkan se utiliza para definir un modelo de dominio, con entidades y relaciones.
Sintaxis:
entity <entity-name> [entity-table-name] {
[<attribute-name> : <data-type> [<validator>*]
}
entity Person
entity Person {
name: String required,
lastName: String
}
Todas las entidades contienen un atributo id
por defecto.
Tipos de dato:
Sintaxis:
entity <entity-name> (entity-table-name) {
<relationship-type> [to-source-attribute-name] <attribute-name> : <entity>
}
Tipos de relación:
entity Person {
name: String,
OneToOne address: Address
}
entity Address {
street: String
}
entity Person {
name: String,
OneToOne (person) address: Address
}
entity Address {
street: String required
}
Nótese que en las relaciones bidireccionales se define un elemento extra (person)
, esto significa que:
Person
se creará un atributo del tipo Address
.Address
se creará un atributo del tipo Person
.El display field es el atributo de la entidad que se muestra en la interfaz gráfica cuando es referenciada mediante una relación con otra entidad. Por defecto es el atributo id
pero se puede cambiar usando el símbolo de flecha ->
en la declaración de la entidad. Por ejemplo:
entity Person {
name: String,
OneToOne address: Address
}
entity Address {
-> street: String required
}
Se usará street
, en lugar de id
, como display field en el formulario de creación/edición de la entidad Person.
En el DSL de Kukulkan, CoreUser
es una palabra reservada para representar a la entidad User
que se crea junto con el arquetipo. Esta entidad se puede asociar con cualquier otra definida por el usuario pero solo tiene soporte para los tipos de relación unidireccional OneToOne
, ManyToOne
y ManyToMany
. Por ejemplo:
entity Person {
OneToOne user: CoreUser
}
Nótese que no es necesario declarar ni importar a CoreUser
en el modelo de dominio.
NAME
add-entities-from-language - Generate all the entities that come from a file with .3k or .kukulkan extension
SYNOPSYS
add-entities-from-language [--file-name] string [[--exclude-layers] string]
OPTIONS
--file-name string
[Mandatory]
--exclude-layers string
[Optional, default = @all]
Nota:
Luego de la adición de entidades al proyecto Kukulkán Shell ejecuta el comando config --type FRONT_END
para asegurarse que los archivos generados en el front-end sean inyectados al index.html
, entre otras acciones.
app/entities/person/person.service.js | Este servicio consume la API REST del servidor |
app/entities/person/person.controller.js | Controlador: está enlazado a la vista |
app/entities/person/persons.html | Vista: Muestra todas las personas existentes |
app/entities/person/person.state.js | Estado (o ruta): Define el estado ‘person' y la url de la vista |
mx.infotec.dads.demo.domain.Person | Entidad de dominio (POJO) |
mx.infotec.dads.demo.repository.PersonRepository | Aquí van los queries a la BD |
mx.infotec.dads.demo.service.PersonService | Aquí se definen los métodos del servicio |
mx.infotec.dads.demo.service.impl.PersonServiceImpl | Implementación de la interfaz PersonService (utiliza a PersonRepository) |
mx.infotec.dads.demo.web.rest.PersonResource | Servicio REST (utiliza a PersonService) |