sro-model
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.wesleyosantos91.susep.sro</groupId>
<artifactId>sro-model</artifactId>
<version>0.0.2</version>
</dependency><?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.github.wesleyosantos91.susep.sro</groupId>
<artifactId>sro-model</artifactId>
<version>0.0.2</version>
<packaging>jar</packaging>
<name>SRO Model</name>
<description>Sistema de Registro de Operações - Modelo de Dados baseado na especificação SUSEP SRO v2.0.0</description>
<url>https://github.com/wesleyosantos91/sro-model</url>
<developers>
<developer>
<id>wesleysantos91</id>
<name>Wesley Santos</name>
<email>wesleyosantos91@gmail.com</email>
<url>https://github.com/wesleysantos91</url>
<roles>
<role>developer</role>
</roles>
<timezone>America/Sao_Paulo</timezone>
</developer>
</developers>
<licenses>
<license>
<name>Apache License 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<connection>scm:git:https://github.com/wesleyosantos91/sro-model.git</connection>
<developerConnection>scm:git:https://github.com/wesleyosantos91/sro-model.git</developerConnection>
<url>https://github.com/wesleyosantos91/sro-model</url>
</scm>
<distributionManagement>
<repository>
<id>central</id>
<url>https://central.sonatype.com/api/v1/publisher</url>
</repository>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>25</maven.compiler.source>
<maven.compiler.target>25</maven.compiler.target>
<maven.compiler.release>25</maven.compiler.release>
</properties>
<dependencies>
<!-- JUnit 5 para testes -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.1</version>
<scope>test</scope>
</dependency>
<!-- AssertJ para assertions fluentes -->
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>3.25.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Maven Compiler Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.12.1</version>
<configuration>
<source>25</source>
<target>25</target>
<release>25</release>
<compilerArgs>
<arg>--enable-preview</arg>
</compilerArgs>
</configuration>
</plugin>
<!-- Maven Surefire Plugin (testes) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<argLine>${argLine} --enable-preview</argLine>
</configuration>
</plugin>
<!-- JaCoCo Maven Plugin (cobertura de código) -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<executions>
<!-- Prepara agente JaCoCo antes dos testes -->
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- Gera relatório de cobertura após os testes -->
<execution>
<id>report</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<!-- Verifica cobertura mínima (opcional) -->
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>PACKAGE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
<limit>
<counter>BRANCH</counter>
<value>COVEREDRATIO</value>
<minimum>0.70</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- PIT Mutation Testing Plugin -->
<plugin>
<groupId>org.pitest</groupId>
<artifactId>pitest-maven</artifactId>
<version>1.21.0</version>
<dependencies>
<dependency>
<groupId>org.pitest</groupId>
<artifactId>pitest-junit5-plugin</artifactId>
<version>1.2.3</version>
</dependency>
</dependencies>
<configuration>
<!-- Classes a serem testadas -->
<targetClasses>
<param>io.github.wesleyosantos91.susep.sro.model.*</param>
</targetClasses>
<!-- Pacotes de teste -->
<targetTests>
<param>io.github.wesleyosantos91.susep.sro.model.*</param>
</targetTests>
<!-- Mutadores ativos -->
<mutators>
<mutator>DEFAULTS</mutator>
</mutators>
<!-- Formato do relatório (HTML e XML) -->
<outputFormats>
<outputFormat>HTML</outputFormat>
<outputFormat>XML</outputFormat>
</outputFormats>
<!-- Diretório de saída -->
<reportsDirectory>${project.build.directory}/pit-reports</reportsDirectory>
<!-- Número de threads -->
<threads>4</threads>
<!-- Cobertura mínima de mutação (80%) -->
<mutationThreshold>80</mutationThreshold>
<!-- Cobertura mínima de código (80%) -->
<coverageThreshold>80</coverageThreshold>
<!-- Timeout por teste (em ms) -->
<timeoutConstant>10000</timeoutConstant>
<!-- Exportar linha de base -->
<timestampedReports>false</timestampedReports>
<!-- Features -->
<features>
<feature>+auto_threads</feature>
</features>
<!-- Excluir classes geradas -->
<excludedClasses>
<param>**.*Test</param>
</excludedClasses>
<!-- Argumentos JVM -->
<jvmArgs>
<value>--enable-preview</value>
</jvmArgs>
</configuration>
<executions>
<execution>
<id>pit-report</id>
<phase>test</phase>
<goals>
<goal>mutationCoverage</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Maven Source Plugin (OBRIGATÓRIO para Maven Central) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Maven Javadoc Plugin (OBRIGATÓRIO para Maven Central) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>verify</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<source>25</source>
<release>25</release>
<additionalOptions>--enable-preview</additionalOptions>
<show>public</show>
<encoding>UTF-8</encoding>
<charset>UTF-8</charset>
<docencoding>UTF-8</docencoding>
<doclint>none</doclint>
<failOnError>false</failOnError>
<failOnWarnings>false</failOnWarnings>
</configuration>
</execution>
</executions>
</plugin>
<!-- Maven Release Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>3.0.1</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<useReleaseProfile>false</useReleaseProfile>
<releaseProfiles>release</releaseProfiles>
<goals>deploy</goals>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
<!-- Maven JAR Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Built-By>Wesley Santos</Built-By>
<Implementation-Title>${project.name}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Specification-Title>SUSEP SRO</Specification-Title>
<Specification-Version>2.0.0</Specification-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
<!-- Central Publishing Maven Plugin (para novo Maven Central) -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.5.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<!-- Profile para release no Maven Central -->
<profile>
<id>release</id>
<build>
<plugins>
<!-- GPG Plugin para assinar artefatos -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- Central Publishing Maven Plugin -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.6.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<reporting>
<plugins>
<!-- Maven Project Info Reports -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<!-- Maven Javadoc Report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<source>25</source>
<release>25</release>
<additionalOptions>--enable-preview</additionalOptions>
</configuration>
</plugin>
<!-- JaCoCo Coverage Report -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.14</version>
<reportSets>
<reportSet>
<reports>
<report>report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</project>