Este aplicativo foi gerado usando JHipster 8.7.3, você pode encontrar documentação e ajuda em https://www.jhipster.tech/documentation-archive/v8.7.3.
O nó é necessário para geração e recomendado para desenvolvimento. package.json
é sempre gerado para uma melhor experiência de desenvolvimento com ganchos de commit, scripts e assim por diante mais bonitos.
Na raiz do projeto, o JHipster gera arquivos de configuração para ferramentas como git, prettier, eslint, husky e outras que são bastante conhecidas e você pode encontrar referências na web.
A estrutura /src/*
segue a estrutura Java padrão.
.yo-rc.json
- Arquivo de configuração Yeoman A configuração JHipster é armazenada neste arquivo na chave generator-jhipster
. Você pode encontrar generator-jhipster-*
para configurações específicas de blueprints.
.yo-resolve
(opcional) - Resolvedor de conflitos Yeoman Permite usar uma ação específica quando conflitos são encontrados, ignorando prompts para arquivos que correspondam a um padrão. Cada linha deve corresponder [pattern] [action]
com o padrão sendo um padrão Minimatch e a ação sendo um de pular (padrão se omitido) ou forçar. Linhas que começam com #
são consideradas comentários e são ignoradas.
.jhipster/*.json
- arquivos de configuração da entidade JHipster
npmw
- wrapper para usar o npm instalado localmente. JHipster instala Node e npm localmente usando a ferramenta de construção por padrão. Este wrapper garante que o npm esteja instalado localmente e o utiliza evitando algumas diferenças que diferentes versões podem causar. Usando ./npmw
em vez do npm
tradicional você pode configurar um ambiente sem Node para desenvolver ou testar sua aplicação.
/src/main/docker
- Configurações do Docker para o aplicativo e serviços dos quais o aplicativo depende
O sistema de compilação instalará automaticamente a versão recomendada do Node e do npm.
Fornecemos um wrapper para iniciar o npm. Você só precisará executar este comando quando as dependências mudarem em package.json.
./npmw install
Usamos scripts npm e Angular CLI com Webpack como nosso sistema de construção.
Execute os comandos a seguir em dois terminais separados para criar uma experiência de desenvolvimento agradável, onde seu navegador é atualizado automaticamente quando os arquivos são alterados em seu disco rígido.
./mvnw
./npmw start
Npm também é usado para gerenciar dependências CSS e JavaScript usadas neste aplicativo. Você pode atualizar dependências especificando uma versão mais recente em package.json. Você também pode executar ./npmw update
e ./npmw install
para gerenciar dependências. Adicione o sinalizador help
em qualquer comando para ver como você pode usá-lo. Por exemplo, ./npmw help update
.
O comando ./npmw run
listará todos os scripts disponíveis para execução neste projeto.
O JHipster vem com suporte para PWA (Progressive Web App) e está desativado por padrão. Um dos principais componentes de um PWA é um trabalhador de serviço.
O código de inicialização do service worker está desabilitado por padrão. Para habilitá-lo, remova o comentário do seguinte código em src/main/webapp/app/app.config.ts
:
ServiceWorkerModule . register ( 'ngsw-worker.js' , { enabled : false } ) ,
Por exemplo, para adicionar a biblioteca Leaflet como uma dependência de tempo de execução do seu aplicativo, você executaria o seguinte comando:
./npmw install --save --save-exact leaflet
Para se beneficiar das definições de tipo TypeScript do repositório DefinitelyTyped em desenvolvimento, você executaria o seguinte comando:
./npmw install --save-dev --save-exact @types/leaflet
Em seguida, você importaria os arquivos JS e CSS especificados nas instruções de instalação da biblioteca para que o Webpack os conheça: Edite o arquivo src/main/webapp/app/app.config.ts:
import 'leaflet/dist/leaflet.js';
Edite o arquivo src/main/webapp/content/scss/vendor.scss:
@import 'leaflet/dist/leaflet.css';
Observação: ainda há algumas outras coisas a fazer no Leaflet que não detalharemos aqui.
Para obter mais instruções sobre como desenvolver com JHipster, dê uma olhada em Usando JHipster no desenvolvimento.
Você também pode usar Angular CLI para gerar algum código de cliente personalizado.
Por exemplo, o seguinte comando:
ng generate component my-component
irá gerar alguns arquivos:
create src/main/webapp/app/my-component/my-component.component.html
create src/main/webapp/app/my-component/my-component.component.ts
update src/main/webapp/app/app.config.ts
Para construir o jar final e otimizar o aplicativo jhipsterSampleApplication para produção, execute:
./mvnw -Pprod clean verify
Isso concatenará e reduzirá os arquivos CSS e JavaScript do cliente. Ele também modificará index.html
para fazer referência a esses novos arquivos. Para garantir que tudo funcionou, execute:
java -jar target/*.jar
Em seguida, navegue até http://localhost:8080 no seu navegador.
Consulte Usando JHipster em produção para obter mais detalhes.
Para empacotar seu aplicativo como um war e implantá-lo em um servidor de aplicativos, execute:
./mvnw -Pprod,war clean verify
O JHipster Control Center pode ajudá-lo a gerenciar e controlar seus aplicativos. Você pode iniciar um servidor de centro de controle local (acessível em http://localhost:7419) com:
docker compose -f src/main/docker/jhipster-control-center.yml up
Para iniciar os testes da sua aplicação, execute:
./mvnw verify
Os testes de desempenho são executados por Gatling e escritos em Scala. Eles estão localizados em src/test/java/gatling/simulations.
Você pode executar todos os testes Gatling com
./mvnw gatling:test
Os testes de unidade são executados por Jest. Eles estão localizados em src/test/javascript/ e podem ser executados com:
./npmw test
Os testes ponta a ponta da IU são desenvolvidos pela Cypress. Eles estão localizados em src/test/javascript/cypress e podem ser executados iniciando o Spring Boot em um terminal ( ./mvnw spring-boot:run
) e executando os testes ( ./npmw run e2e
) em um segundo.
Você pode executar auditorias automatizadas do Lighthouse com cypress-audit executando ./npmw run e2e:cypress:audits
. Você só deve executar as auditorias quando seu aplicativo estiver empacotado com o perfil de produção. O relatório farol é criado em target/cypress/lhreport.html
Sonar é usado para analisar a qualidade do código. Você pode iniciar um servidor Sonar local (acessível em http://localhost:9001) com:
docker compose -f src/main/docker/sonar.yml up -d
Observação: desativamos o redirecionamento de autenticação forçada para UI em src/main/docker/sonar.yml para uma experiência pronta para uso ao testar o SonarQube; para casos de uso reais, ative-o novamente.
Você pode executar uma análise de sonar usando o sonar-scanner ou usando o plugin maven.
Em seguida, execute uma análise do Sonar:
./mvnw -Pprod clean verify sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
Se você precisar executar novamente a fase do Sonar, certifique-se de especificar pelo menos a fase initialize
, pois as propriedades do Sonar são carregadas do arquivo sonar-project.properties.
./mvnw initialize sonar:sonar -Dsonar.login=admin -Dsonar.password=admin
Além disso, em vez de passar sonar.password
e sonar.login
como argumentos CLI, esses parâmetros podem ser configurados em sonar-project.properties conforme mostrado abaixo:
sonar.login=admin
sonar.password=admin
Para obter mais informações, consulte a página Qualidade do código.
O JHipster gera vários arquivos de configuração do Docker Compose na pasta src/main/docker/ para iniciar os serviços de terceiros necessários.
Por exemplo, para iniciar os serviços necessários em contêineres Docker, execute:
docker compose -f src/main/docker/services.yml up -d
Para parar e remover os contêineres, execute:
docker compose -f src/main/docker/services.yml down
A integração do Spring Docker Compose está habilitada por padrão. É possível desativá-lo em application.yml:
spring :
...
docker :
compose :
enabled : false
Você também pode encaixar totalmente seu aplicativo e todos os serviços dos quais ele depende. Para conseguir isso, primeiro crie uma imagem Docker do seu aplicativo executando:
npm run java:docker
Ou crie uma imagem Docker arm64 ao usar um sistema operacional de processador arm64 como MacOS com família de processadores M1 em execução:
npm run java:docker:arm64
Então execute:
docker compose -f src/main/docker/app.yml up -d
Para obter mais informações, consulte Usando Docker e Docker-Compose, esta página também contém informações sobre o subgerador Docker Compose ( jhipster docker-compose
), que é capaz de gerar configurações Docker para um ou vários aplicativos JHipster.
Para configurar o CI para o seu projeto, execute o subgerador ci-cd ( jhipster ci-cd
), isso permitirá gerar arquivos de configuração para vários sistemas de integração contínua. Consulte a página Configurando Integração Contínua para obter mais informações.