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:
- instalar Node v22.19.0 localmente;
- rodar
npm installemsrc/main/vue-app; - rodar
npm run build(gera os assets da vue-app); - 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:
- roda
mvn clean installno diretório do widget (recompila o.war); - autentica via OAuth1 e resolve
userId(/api/public/2.0/users/getCurrent) etenantId/tenantCode(/api/public/2.0/security/getCurrentTenant); - faz
POST {SERVER}/portal/p/api/servlet/ApplicationUploadcom 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
ApplicationUploadindica 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
| Sintoma | Causa provável | Ação |
|---|---|---|
mvn falha no npm run build | dependência da vue-app / versão de Node | rodar npm install na vue-app e revisar o log do frontend-maven-plugin |
ApplicationUpload retorna erro de autenticação | tokens OAuth1 inválidos/expirados | rotacionar e atualizar os tokens do tenant |
| Widget publica mas não atualiza | cache de versão | confirmar forceDeploy=true; republicar |