Gerador para Demoiselle 3.0
Versões do Gerador (Compatibilidade com Demoiselle Frontend https://github.com/demoiselle/frontend/)
- 3.x.x para Angular 6 (Node 8+, Angular CLI 6, Demoiselle Frontend 3.x)
- 2.x.x para Angular 5 com Angular CLI (Demoiselle Frontend 2.x)
- 1.1.X para Angular 4 (Demoiselle Frontend 1.x)
- 1.0.X para Angular 2.3.0 (Demoiselle Frontend 1.x)
Utilitário para a criação da estrutura básica de um projeto, arquivos e estrutura de pastas, utilizando os padrões:
- Demoiselle 3.0
- Angular
- Swagger Spec - OpenApis
Para executar apenas o generator, você precisará da ferramenta de execução de scripts Javascript Node JS,
do gerenciador de pacotes e dependêncas npm e a ferramenta de apoio para a construção de projetos yo:
node, npm e yo
.
A execução de projetos em Demoiselle 3.0, depende das seguintes ferramentas de software:
- para o backend: Java8, mvn
- para o frontend: node, nvm
O NodeJs e o npm estão disponíveis para os sistemas operacionais Linux, macOS e Windows e podem ser obtido no site https://nodejs.org/en/, ambos são instalados com o pacote de instalação do NodeJs.
Nas distribuições Linux baseadas em Debian a instalação pode ser feita com o comando
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
# Você deve fechar o terminal e abrir novamente
nvm install stable
npm install -g yo generator-demoiselle @angular/cli
#Crie uma nova pasta onde serão mantidos os arquivos do seu novo projeto
mkdir Noticias
#Torne a nova pasta como caminho ativo do projeto
cd Noticias
# Para criar um novo projeto:
yo demoiselle
Eventualmente pode ser apresentada uma mesagem questionando se você deseja contibuir anonimamente com informações, caso concorde algumas informações estatísticas sobre o desempenho da ferramenta poderão ser enviadas para os desenvolvedores da aplicação aprimorarem a ferramenta.
O script de instalação apresentará questionamentos sobre as caracterisitica do seu projeto conforme os seguintes passos
- Dê um nome para o seu projeto: (Informar o nome do projeto por ex: Noticias)
- Informe o package do backend: (Utilizar o padrão java para estrutura de arquivos)
- Dê um prefixo para os seus componentes: (Informar o prefixo que será usado pelos componentes Angular da sua app)
- Você quer gerar arquivos para: (Utilize as teclas de setas para alternar entre as opções, espaço para selecionar, e enter para confirmar)
- Deseja instalar as dependências (isso pode demorar alguns minutos)? (Tem que confirmar para fazer a instalação ou rodar npm install posteriormente)
Serão criados dois diretórios na pasta corrente:
- backend (contém os arquivos para o servidor de aplicação java)
- frontend (arquivos para a interface cliente)
Você poderá executar a aplicação criada neste exemplo diretamente pelo console executando os seguintes comandos:
cd backend
#Comando que compila a aplicação e empacota para ser executada com o servidor Wildfly
mvn clean package -Pwildfly-swarm
java -jar -Xmx128m target/SEU_PACOTE-swarm.jar
Se tudo ocorreu adequadamente ao acessar o endereço http://localhost:8080/ pelo seu navegador será exibida a página com informações sobre a configuração e funcionalidades do sistema
cd frontend
# Instalar os módulos dependentes
npm install
# Inicia a aplicação (frontend)
npm start
Após os comandos será inciado um servidor http na porta 7070 e pode ser acessada utilizando o endereço http://localhost:7070/ no navegador.
Use a opção Import do menu, selecione Maven->Existing Maven Project e clique em Next. Clique no botão Browse e localize a pasta backend criada nos passos anteriores, selecione o arquivo pom.xml identificado e clique em Finish.
No eclipse é possível que apareça o seguinte erro "No generator named "uuid" is defined in the persistence unit" nos arquivos de mapeamento objeto relacional. Para resolver o problema clique em Window na bara de menu, selecione o item Preferences. Na janela que será aberta procure pos Java Persistênce->JPA->Errors/Warnings e altere o valor do item "Generator is not defined in the persistence unit" para Info ou Ignore.
-
yo demoiselle
- gera novos projetos -
yo demoiselle:add
- gera partes da aplicação -
yo demoiselle:fromSwagger
- gera partes da aplicação usando especificação Swagger -
yo demoiselle:fromEntity
- gera partes da aplicação usando as entidades java pré-existentes
# Para adicionar funcionalidades em um projeto:
yo demoiselle:add crud nome_da_nova_funcionalidade
# Para gerar entidades a partir de uma especificação Swagger
yo demoiselle:fromSwagger
# Para gerar entidades a partir da pasta de entidades java
yo demoiselle:fromEntity
No momento o comando add do gerador de código pode ser utilizado apenas para a geração de objetos necessários em funcionalidades de mapeamento objeto-relacional. Ao executar o comando yo demoiselle:add
yo demoiselle:add
#Alternativamente é possível passar o nome da nova funcionalidade por parâmetro
#yo demoiselle:add crud nome_da_nova_funcionalidade
Ao criar uma nova classe para mapeamento de objeto de banco de dados é o gerador de código provê uma instrução que facilita a construção dos elementos utilizados pela aplicação como a exposição de serviços e interfaces. Caso exista uma nova classe no pacote entity do seu projeto execute o comando:
yo demoiselle:fromEntity
Serão listadas todas as classes responsáveis pelas funcionalidades de mapeamento objeto-relacional. Informe se você deseja criar os arquivos para frontend, backend ou ambos e confirme com a tecla enter. Selecione as classes para as quais deseja gerara os arquivos necessários para uma aplicação
O projeto Swagger oferece funcionalidades de apresentação dos serviços disponibilizados, utilizando a notação JSON em uma implementação RESTfull. Utilizando esta estratégia a implementação de uma ferramente de consumo de serviços pode ser implementada sem a necessidade de conhecimentos prévios da implementação no servidor, bastando conhecer a descrição das funcionalidades do mesmo fornecidas por um documento JSON. O papel do Swagger é semelhante ao desempenhado pela WSDL em um servidor SOAP.
Para gerar os arquivos baseados em um documento JSON com as descrições dos serviços oferecidos basta colocar o arquivo na pasta raiz ou subdiretório da aplicação e executar o comando:
# serão apresentados todos os arquivos nas pastas da aplicação, selecione os que deseja implementar
yo demoiselle:fromSwagger
Serão gerados os arquivos necessários para a implementação de uma aplicação, tanto no frontend quanto no backend, a partir da descrição fornecida pelo arquivo JSON.
Criando uma distribuição da interface para ser instalada em servidor web
npm run build
Acompanhe pelos milestones do projeto.
LGPL3 © SERPRO