🚀 Como Rodar Localmente - ecosif-moviments

📋 Visão Geral

Este guia explica como configurar e executar o serviço ecosif-moviments localmente para desenvolvimento.


✅ Pré-requisitos

Software Necessário

Verificar Instalações

# Verificar Java
java -version
# Deve mostrar: openjdk version "17" ou superior

# Verificar Maven
mvn -version
# Deve mostrar: Apache Maven 3.9.x ou superior

# Verificar PostgreSQL
psql --version
# Deve mostrar: psql (PostgreSQL) 15.x ou superior

📥 Clonar e Preparar Projeto

1. Clonar Repositório

git clone <repo-url>
cd ecosif-moviments

2. Instalar Dependência Local

# Copiar JAR da biblioteca ecosif-database
cp ../ecosif-database/target/ecosif-database-*.jar libs/

# Ou se não tiver o JAR compilado:
cd ../ecosif-database
mvn clean install -DskipTests
cd ../ecosif-moviments

🗄️ Configurar Banco de Dados

1. Criar Banco

# Conectar ao PostgreSQL
psql -U postgres

# Criar banco
CREATE DATABASE ecosif_moviments;

# Sair
\q

2. Configurar Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto:

# Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=ecosif_moviments
POSTGRES_USER=postgres
POSTGRES_PASSWORD=senha123

# Server
ECOSIF_MOVIMENTS_PORT=8082

# Security
AUTH_TOKEN_SECRET=your-secret-key-min-32-characters-long
TOKEN_EXPIRATION=86400000

# CORS
ECOSIF_CORS=http://localhost:4200

# JPA/Hibernate
HIBERNATE_DDL_AUTO=update
ECOSIF_FLYWAY_ENABLED=true

# Logging
ECOSIF_LOGSHOW=true
LOG_FORMAT=default
ECOSIF_LOGMODE_ROOT=INFO
ECOSIF_LOGMODE_SPRING=INFO
ECOSIF_LOGMODE_HIBERNATE_SQL=INFO

Exportar variáveis:

# Linux/Mac
export $(cat .env | xargs)

# Ou manualmente
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
# ... etc

🔨 Compilar e Executar

Opção 1: Maven Spring Boot Plugin (Recomendado)

# Compilar e executar
mvn spring-boot:run

# Ou compilar primeiro
mvn clean install -DskipTests
mvn spring-boot:run

Opção 2: Executar JAR

# Compilar
mvn clean package -DskipTests

# Executar
java -jar target/ecosif-moviments.jar

Opção 3: IDE (IntelliJ IDEA / Eclipse)

  1. Importar projeto como Maven
  2. Configurar variáveis de ambiente no Run Configuration
  3. Executar classe Application.java

✅ Verificar Funcionamento

1. Health Check

curl http://localhost:8082/actuator/health

Resposta esperada:

{
  "status": "UP"
}

2. Swagger UI

Abra no navegador:

http://localhost:8082/swagger-ui.html

3. API Info

curl http://localhost:8082/actuator/info

🧪 Executar Testes

# Todos os testes
mvn test

# Teste específico
mvn test -Dtest=BatchServiceTest

# Testes com cobertura
mvn clean test jacoco:report

🐛 Troubleshooting

Erro: "Cannot connect to database"

Solução:

# Verificar se PostgreSQL está rodando
sudo systemctl status postgresql  # Linux
brew services list | grep postgresql  # Mac

# Verificar conectividade
psql -h localhost -U postgres -d ecosif_moviments

Erro: "JAR not found: ecosif-database"

Solução:

# Instalar biblioteca
cd ../ecosif-database
mvn clean install -DskipTests
cd ../ecosif-moviments

Erro: "Port already in use"

Solução:

# Verificar processo na porta 8082
lsof -i :8082  # Linux/Mac
netstat -ano | findstr :8082  # Windows

# Matar processo ou mudar porta
export ECOSIF_MOVIMENTS_PORT=8083

📝 Notas de Desenvolvimento

  1. Hot Reload: Spring Boot DevTools habilita hot reload automaticamente
  2. Logs: SQL aparece no console se ECOSIF_LOGSHOW=true
  3. Database: HIBERNATE_DDL_AUTO=update cria/atualiza schema automaticamente
  4. Flyway: Migrações executam automaticamente na inicialização

Última Atualização: 2025-11-27