Framework
Projeto pai
O pom.xml raiz de uma aplicação D5 herda de d5-pai, que:
- herda de
spring-boot-starter-parent4.1 — portanto, a aplicação usa Spring Boot 4.1; - define Java 25 como versão do Java;
- gerencia as versões dos módulos do framework, que são declarados sem
<version>; - declara a dependência de JSpecify em todos os módulos e configura a verificação de nulidade em tempo de compilação; veja Evite
null.
Módulos principais
O framework possui módulos para as camadas de domínio, aplicação, infraestrutura e UI.
Todos têm groupId dev.sauloaraujo e estão no Maven Central. Na versão 1.0.0-SNAPSHOT, é preciso declarar o repositório de snapshots, como no pom.xml raiz do tutorial.
| Módulo | Camada |
|---|---|
d5-framework-dominio |
Domínio |
d5-framework-aplicacao |
Aplicação |
d5-framework-infraestrutura |
Infraestrutura |
d5-framework-ui-backend |
UI |
d5-framework-springdoc |
UI |
Módulos de teste
Cada camada tem também um módulo de teste correspondente, que traz as dependências necessárias para testá-la — assim, um módulo de domínio, aplicação, infraestrutura ou UI de uma aplicação D5 não precisa declarar individualmente as dependências de teste que usa, bastando depender do módulo de teste da sua camada.
| Módulo | Camada | Dependências |
|---|---|---|
d5-framework-dominio-teste |
Domínio | Cucumber, JUnit (incluindo JUnit Platform Suite) e Mockito |
d5-framework-aplicacao-teste |
Aplicação | Cucumber, JUnit (incluindo JUnit Platform Suite) e Mockito |
d5-framework-infraestrutura-teste |
Infraestrutura | spring-boot-starter-test, spring-boot-starter-data-jpa-test e H2 |
d5-framework-ui-backend-teste |
UI | spring-boot-starter-test e spring-security-test |
Esses módulos não têm código próprio: são agregadores de dependências, publicados com packaging pom. Por isso, ao declará-los em um pom.xml, é necessário informar <type>pom</type>:
<dependency>
<groupId>dev.sauloaraujo</groupId>
<artifactId>d5-framework-dominio-teste</artifactId>
<type>pom</type>
<scope>test</scope>
</dependency>