-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathpom.xml
More file actions
317 lines (306 loc) · 15.1 KB
/
pom.xml
File metadata and controls
317 lines (306 loc) · 15.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<!-- Spring Boot Starter Parent ==================================== -->
<!--
Parent pom providing dependency and plugin management for
applications built with Maven
-->
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.0.0</version>
<relativePath />
</parent>
<groupId>ar.com.nanotaboada</groupId>
<artifactId>java.samples.spring.boot</artifactId>
<version>4.0.2025</version>
<name>java.samples.spring.boot</name>
<description>A RESTful Web Service demonstrating clean architecture patterns with Spring Boot 4</description>
<properties>
<java.version>25</java.version>
<lombok.version>1.18.42</lombok.version>
</properties>
<dependencies>
<!-- =============================================================== -->
<!-- Controllers -->
<!-- =============================================================== -->
<!-- REST endpoints, request/response handling, API documentation -->
<!-- Spring Boot Starter WebMVC ==================================== -->
<!--
Starter for building web, including RESTful, applications using
Spring MVC. Uses Tomcat as the default embedded container.
Note: Renamed from spring-boot-starter-web in Spring Boot 4.0
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-webmvc
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc</artifactId>
</dependency>
<!-- Spring Boot Starter WebMVC Test =============================== -->
<!--
Test support for Spring Boot web MVC applications.
New in Spring Boot 4.0: Modular architecture requires separate test
starters. Provides @WebMvcTest which is now located in the package:
org.springframework.boot.webmvc.test.autoconfigure.WebMvcTest
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-webmvc-test
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webmvc-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Spring Boot Starter Validation ================================ -->
<!--
Starter for using Java Bean Validation with Hibernate Validator
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- SpringDoc OpenAPI Starter WebMVC UI =========================== -->
<!--
Interactive API documentation with Swagger UI powered by OpenAPI 3.
https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui
-->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>3.0.2</version>
</dependency>
<!-- =============================================================== -->
<!-- Services -->
<!-- =============================================================== -->
<!-- Business logic, caching, entity-to-DTO mapping -->
<!-- Spring Boot Starter Cache ===================================== -->
<!--
Starter for using Spring Framework's caching support.
Enables @EnableCaching and cache annotations (@Cacheable, @CachePut,
@CacheEvict). When using caching with slice tests, also add the
spring-boot-starter-cache-test dependency and @AutoConfigureCache.
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-cache
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<!-- Spring Boot Starter Cache Test ================================ -->
<!--
Test support for Spring Boot Cache applications.
New in Spring Boot 4.0: Modular architecture requires separate test
starters. Provides @AutoConfigureCache which is now located in:
org.springframework.boot.cache.test.autoconfigure.AutoConfigureCache
Required when using @EnableCaching with slice tests like @WebMvcTest
or @DataJpaTest to provide a CacheManager bean in the test context.
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-cache-test
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache-test</artifactId>
<scope>test</scope>
</dependency>
<!-- ModelMapper =================================================== -->
<!--
Simple, Intelligent, Object Mapping for Entity-to-DTO conversion.
https://mvnrepository.com/artifact/org.modelmapper/modelmapper
-->
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>3.2.6</version>
</dependency>
<!-- =============================================================== -->
<!-- Repositories -->
<!-- =============================================================== -->
<!-- Data access, JPA/Hibernate, database connectivity -->
<!-- Spring Boot Starter Data JPA ================================== -->
<!--
Starter for using Spring Data JPA with Hibernate.
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- Spring Boot Starter Data JPA Test ============================= -->
<!--
Test support for Spring Boot Data JPA applications.
New in Spring Boot 4.0: Modular architecture requires separate test
starters. Provides @DataJpaTest which is now located in the package:
org.springframework.boot.data.jpa.test.autoconfigure.DataJpaTest
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-data-jpa-test
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa-test</artifactId>
<scope>test</scope>
</dependency>
<!-- SQLite JDBC Driver ============================================ -->
<!--
SQLite JDBC is a library for accessing SQLite databases through
the JDBC API. It provides a lightweight, file-based database that
persists data across application restarts.
https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
-->
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.51.2.0</version>
<scope>runtime</scope>
</dependency>
<!-- Hibernate Community Dialects ==================================== -->
<!--
Provides SQLite dialect for Hibernate ORM. Required for JPA/Hibernate
to correctly generate SQL statements for SQLite databases.
https://mvnrepository.com/artifact/org.hibernate.orm/hibernate-community-dialects
-->
<dependency>
<groupId>org.hibernate.orm</groupId>
<artifactId>hibernate-community-dialects</artifactId>
</dependency>
<!-- H2 Database Engine ============================================ -->
<!--
Provides a fast in-memory database for testing. Used only in test
scope for fast unit and integration test execution.
https://mvnrepository.com/artifact/com.h2database/h2
-->
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>2.4.240</version>
<scope>test</scope>
</dependency>
<!-- =============================================================== -->
<!-- Operations -->
<!-- =============================================================== -->
<!-- Monitoring, health checks, production-ready features -->
<!-- Spring Boot Starter Actuator ================================== -->
<!--
Starter for using Spring Boot's Actuator which provides production
ready features to help you monitor and manage your application.
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- =============================================================== -->
<!-- Testing -->
<!-- =============================================================== -->
<!-- Test framework, assertions, mocking -->
<!-- Spring Boot Starter Test ====================================== -->
<!--
Starter for testing Spring Boot applications with libraries
including JUnit Jupiter, Hamcrest and Mockito.
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- AssertJ Fluent Assertions ===================================== -->
<!--
Rich and fluent assertions for testing in Java.
https://mvnrepository.com/artifact/org.assertj/assertj-core
-->
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.27.7</version>
<scope>test</scope>
</dependency>
<!-- =============================================================== -->
<!-- Tools -->
<!-- =============================================================== -->
<!-- Code generation, boilerplate reduction -->
<!-- Project Lombok ================================================ -->
<!--
Lombok is a Java library that provides annotations to simplify
Java development by automating the generation of boilerplate code.
Key features include automatic generation of getters, setters,
equals, hashCode, and toString methods, as well as a facility for
automatic resource management. It aims to reduce the amount of
manual coding, thereby streamlining the codebase and reducing
potential for errors.
https://mvnrepository.com/artifact/org.projectlombok/lombok
-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Apache Maven Compiler Plugin ============================== -->
<!--
The Compiler Plugin is used to compile the sources of your
project.
https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.15.0</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<!-- Spring Boot Maven Plugin ================================== -->
<!--
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-maven-plugin
-->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- JaCoCo :: Maven Plugin ==================================== -->
<!--
The JaCoCo Maven Plugin provides the JaCoCo runtime agent to
your tests and allows basic report creation.
https://mvnrepository.com/artifact/org.jacoco/jacoco-maven-plugin
-->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<configuration>
<!-- https://www.eclemma.org/jacoco/trunk/doc/report-mojo.html#excludes -->
<excludes>
<exclude>ar/com/nanotaboada/**/Application.class</exclude>
<exclude>ar/com/nanotaboada/**/models/*</exclude>
<exclude>ar/com/nanotaboada/**/converters/*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>