Pular para conteúdo

Como rodar

Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-09-21

O que basta para compilar, rodar o gate e subir o cliente na máquina do dev. O mapa dos pacotes está no guia do código; instalar na máquina do cliente é outro documento — instalação e operação.

Pré-requisitos

  • Um JDK instalado (qualquer razoável — o 21 serve). O wrapper baixa o Gradle e o resolver de toolchain baixa sozinho o JDK de compilação na primeira build: 1× por máquina, precisa de internet, fica em ~/.gradle/jdks.
  • Nada de Docker, banco ou serviço de nuvem. Os testes usam SQLite de verdade em pasta temporária e um pAbast falso (scripts em src/test/resources/pabast-fake/) — a suíte exercita a plataforma real, não um mock do SDK.
  • Para rodar o programa de verdade contra um ERP, aí sim: zimrtmu.exe instalado, o .properties da instalação e o .pem do cliente (ver instalação e operação).

Passos

./gradlew check --no-daemon --console=plain   # gate: compila + checkstyle + testes + cobertura
./gradlew test --tests '*ArquivoEnvioTest'    # um teste só, quando estiver iterando
./gradlew shadowJar                           # fat jar em dist/ (o que se distribui)

O alvo de compilação é Java 8 (bytecode 52) mesmo com o build rodando num JDK moderno — é o que faz o jar rodar no JRE do ERP. Há um teste que confere isso; se ele ficar vermelho, alguém mexeu no --release.

Recomendações de ambiente

  • NetBeans: File → Open Project na pasta do repo (projeto Gradle). A IDE pode estar num JDK diferente do de compilação — o toolchain do Gradle resolve, não force nada.
  • Windows é o ambiente do dev; a CI é Linux. Alguns testes de integração usam scripts .sh do pAbast falso e por isso são pulados no Windows — o check local fica verde sem tê-los executado. Antes de taggar, confirme a run da CI verde (ou rode o gate num container Linux), senão a divergência aparece depois da tag.
  • Console em UTF-8 ao rodar o programa (chcp 65001, o que o rodar.bat já faz), senão o log acentuado sai torto no Windows.
  • O log vai para stderr + arquivo (logs/), nunca para stdout: é o contrato de CLI da casa, e é o que deixa a saída padrão livre.

Subir o programa

java -jar dist/integrador-client-<versão>.jar            # daemon; lê o .properties ao lado do jar
java -jar dist/integrador-client-<versão>.jar --debug    # processamento MANUAL pelo console
java -jar dist/integrador-client-<versão>.jar --version  # imprime a versão e sai

No modo --debug nada roda sozinho: o operador processa passo a passo e vê as linhas fixed-width do envio e do retorno — é o modo de homologar o pAbast com a equipe ZIM. Rodar contra um ERP de verdade exige o zimrtmu.exe, o .properties da instalação e o .pem do cliente (instalação e operação).

A suíte ponta a ponta local, com o pAbast falso, está em E2E local.