Pular para o conteúdo principal

Build e deploy do widget

O widget wd_controle_maritimo é um projeto Maven (packaging: war) que embute a aplicação Vue. O build compila a vue-app automaticamente e gera um .war, que é enviado ao tenant via deploy.py.

Como o build funciona

O pom.xml (groupId: br.com.kobit, artifactId: wd_controle_maritimo, version: 1.0.0, finalName: wd_controle_maritimo) usa o frontend-maven-plugin para, durante o mvn install:

  1. instalar Node v22.19.0 localmente;
  2. rodar npm install em src/main/vue-app;
  3. rodar npm run build (gera os assets da vue-app);
  4. empacotar tudo em target/wd_controle_maritimo.war.

Ou seja, não é preciso buildar a vue-app à parte — o Maven faz isso.

Build manual (opcional)

Para validar o .war sem publicar:

cd wcm/widget/wd_controle_maritimo
mvn clean install
# saída: target/wd_controle_maritimo.war

Deploy automatizado (deploy.py)

Da raiz do repositório:

python deploy.py

O deploy.py:

  1. roda mvn clean install no diretório do widget (recompila o .war);
  2. autentica via OAuth1 e resolve userId (/api/public/2.0/users/getCurrent) e tenantId/tenantCode (/api/public/2.0/security/getCurrentTenant);
  3. faz POST {SERVER}/portal/p/api/servlet/ApplicationUpload com o .war, forceDeploy=true.

:::note Configuração antes de rodar Ajuste no deploy.py (ou nas variáveis de onde ele lê) a SERVER_URL e os tokens OAuth1 do tenant alvo. A lista WIDGETS já contém wd_controle_maritimo. Lembre-se da orientação de segredos: rotacione e não versione tokens. :::

Verificação

  • O build terminou com código 0 ("Build concluído com sucesso").
  • A resposta do ApplicationUpload indica sucesso.
  • No Fluig, adicione o widget a uma página e confirme que o ViewMode carrega (cabeçalho, banners, card de filtros, calendário).
  • Com perfil de edição, os botões Configurar períodos e Processar Folha aparecem.

:::warning O widget depende dos demais artefatos Se o calendário não carregar dados ou os zooms vierem vazios, provavelmente faltam datasets, listas ou as sentenças RM. Confira a ordem de instalação e o pós-deploy. :::

Troubleshooting

SintomaCausa provávelAção
mvn falha no npm run builddependência da vue-app / versão de Noderodar npm install na vue-app e revisar o log do frontend-maven-plugin
ApplicationUpload retorna erro de autenticaçãotokens OAuth1 inválidos/expiradosrotacionar e atualizar os tokens do tenant
Widget publica mas não atualizacache de versãoconfirmar forceDeploy=true; republicar