pom.xml
Rama main · réplica de lectura del repositorio original.
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.binarycodes</groupId>
<artifactId>calculators</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>jar</packaging>
<licenses>
<license>
<name>GNU General Public License v3.0</name>
<url>https://www.gnu.org/licenses/gpl-3.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<properties>
<java.version>21</java.version>
<vaadin.version>25.3.4</vaadin.version>
<icu4j.version>78.3</icu4j.version>
<dramafinder.version>1.1.1</dramafinder.version>
<playwright.version>1.61.0</playwright.version>
<jacoco.version>0.8.13</jacoco.version>
<headless>true</headless>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>4.0.6</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-bom</artifactId>
<version>${vaadin.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>${icu4j.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin</artifactId>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-dev</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>browserless-test-junit6</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.vaadin.addons</groupId>
<artifactId>dramafinder</artifactId>
<version>${dramafinder.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.microsoft.playwright</groupId>
<artifactId>playwright</artifactId>
<version>${playwright.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<defaultGoal>spring-boot:run</defaultGoal>
<plugins>
<!--
Warnings fail the build. The exclusions are the categories that fire
on correct code here, so leaving them on would train everyone to
ignore the output:
deprecation - @CssImport(themeFor) is deprecated but is the only
way to reach Highcharts internals in shadow DOM
serial - Vaadin components are Serializable without serialVersionUID
this-escape - every view calls add()/setWidthFull() from its constructor
path - non-existent classpath entries, environmental not code
processing - Lombok is the only processor, so it never claims the
Spring and Vaadin annotations read at runtime
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<compilerArgs>
<arg>-Xlint:all,-deprecation,-serial,-this-escape,-path,-processing</arg>
<arg>-Werror</arg>
</compilerArgs>
</configuration>
</plugin>
<!--
The deployed commit SHA is mandatory: every build must be traceable
to a commit. build.commit has no default, so a build that fails to
supply -Dbuild.commit=<sha> is rejected here at validate rather than
silently shipping an unidentifiable build. run.sh supplies it from
`git rev-parse HEAD`; the Docker build from the GIT_SHA arg; CI from
github.sha.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>require-build-commit</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>build.commit</property>
<message>build.commit is required: pass -Dbuild.commit=<git sha>. Build through ./run.sh (which sets it automatically) or, for Docker, supply the GIT_SHA build arg.</message>
<regex>[0-9a-fA-F]{7,40}</regex>
<regexMessage>build.commit must be a git commit SHA (7-40 hex chars).</regexMessage>
</requireProperty>
</rules>
<failFast>true</failFast>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>build-info</goal>
</goals>
<configuration>
<additionalProperties>
<commit>${build.commit}</commit>
</additionalProperties>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.version}</version>
<executions>
<execution>
<goals>
<goal>build-frontend</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals><goal>prepare-agent</goal></goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals><goal>report</goal></goals>
</execution>
<execution>
<id>coverage-check</id>
<phase>test</phase>
<goals><goal>check</goal></goals>
<configuration>
<rules>
<rule>
<element>PACKAGE</element>
<includes>
<include>io/binarycodes/calculators/*/service</include>
</includes>
<limits>
<limit>
<counter>INSTRUCTION</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<systemPropertyVariables>
<headless>${headless}</headless>
</systemPropertyVariables>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<!--
Renders the failsafe (e2e/Playwright) and surefire (unit) XML
results into a browsable HTML scenario list under
target/reports/. Not a coverage gate — it's a human-readable
catalogue of which scenarios ran and passed. @DisplayName on the
IT classes/methods becomes the scenario text.
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>3.5.5</version>
<configuration>
<outputDirectory>${project.build.directory}/reports</outputDirectory>
<showSuccess>true</showSuccess>
</configuration>
<executions>
<execution>
<id>e2e-scenario-report</id>
<phase>post-integration-test</phase>
<goals><goal>failsafe-report-only</goal></goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>it</id>
<properties>
<vaadin.productionMode>true</vaadin.productionMode>
<headless>true</headless>
</properties>
</profile>
<profile>
<id>debug-ui</id>
<properties>
<headless>false</headless>
</properties>
</profile>
</profiles>
<repositories>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>vaadin-addons</id>
<url>https://maven.vaadin.com/vaadin-addons</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>