Files

401 lines
17 KiB
XML

<?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>
<groupId>br.com.cybercore.signer</groupId>
<artifactId>cybercore-signer-parent</artifactId>
<version>0.1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>CyberCore Signer</name>
<description>Agente desktop de assinatura digital (A1/A3) para aplicações web autorizadas.</description>
<url>https://cybercore.com.br</url>
<inceptionYear>2026</inceptionYear>
<organization>
<name>CyberCore</name>
<url>https://cybercore.com.br</url>
</organization>
<licenses>
<license>
<name>Proprietária - CyberCore. Todos os direitos reservados.</name>
<distribution>manual</distribution>
</license>
</licenses>
<modules>
<module>modules/cybercore-core</module>
<module>modules/cybercore-ui</module>
<module>modules/cybercore-app</module>
</modules>
<properties>
<!-- Plataforma -->
<java.release>25</java.release>
<maven.compiler.release>${java.release}</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Builds reprodutíveis: atualizado no release -->
<project.build.outputTimestamp>2026-10-08T00:00:00Z</project.build.outputTimestamp>
<!-- Produto -->
<cybercore.product.name>CyberCore Signer</cybercore.product.name>
<cybercore.protocol.version>1</cybercore.protocol.version>
<!--
Sabor do build. "production" por padrão (seguro).
O perfil "dev" altera para "development", único caso em que o modo
DESENVOLVIMENTO pode ser ativado em tempo de execução (flag dash-dash-dev).
-->
<cybercore.build.flavor>production</cybercore.build.flavor>
<!-- Dependências -->
<javafx.version>25.0.4</javafx.version>
<slf4j.version>2.0.20</slf4j.version>
<logback.version>1.5.18</logback.version>
<junit.version>6.1.3</junit.version>
<assertj.version>3.27.7</assertj.version>
<mockito.version>5.24.0</mockito.version>
<archunit.version>1.5.1</archunit.version>
<jackson.version>2.18.2</jackson.version>
<pdfbox.version>3.0.4</pdfbox.version>
<bouncycastle.version>1.80</bouncycastle.version>
<!-- Plugins -->
<maven-clean-plugin.version>3.5.0</maven-clean-plugin.version>
<maven-resources-plugin.version>3.5.0</maven-resources-plugin.version>
<maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.5.6</maven-surefire-plugin.version>
<maven-jar-plugin.version>3.5.1</maven-jar-plugin.version>
<maven-install-plugin.version>3.2.0</maven-install-plugin.version>
<maven-deploy-plugin.version>3.2.0</maven-deploy-plugin.version>
<maven-site-plugin.version>3.22.0</maven-site-plugin.version>
<maven-enforcer-plugin.version>3.6.3</maven-enforcer-plugin.version>
<maven-dependency-plugin.version>3.11.0</maven-dependency-plugin.version>
<maven-wrapper-plugin.version>3.3.4</maven-wrapper-plugin.version>
<jacoco-maven-plugin.version>0.8.15</jacoco-maven-plugin.version>
<spotbugs-maven-plugin.version>4.10.4.1</spotbugs-maven-plugin.version>
<findsecbugs-plugin.version>1.14.0</findsecbugs-plugin.version>
<javafx-maven-plugin.version>0.0.8</javafx-maven-plugin.version>
<!-- Qualidade -->
<spotbugs.skip>false</spotbugs.skip>
<jacoco.skip>false</jacoco.skip>
</properties>
<dependencyManagement>
<dependencies>
<!-- Módulos internos -->
<dependency>
<groupId>br.com.cybercore.signer</groupId>
<artifactId>cybercore-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>br.com.cybercore.signer</groupId>
<artifactId>cybercore-ui</artifactId>
<version>${project.version}</version>
</dependency>
<!-- JavaFX -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-base</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-graphics</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
<!-- Testes -->
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
</dependency>
<dependency>
<groupId>com.tngtech.archunit</groupId>
<artifactId>archunit-junit5</artifactId>
<version>${archunit.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Manipulação e Assinatura de PDF (PAdES) e CMS -->
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>${pdfbox.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcutil-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Dependências de teste comuns a todos os módulos -->
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<configuration>
<propertiesEncoding>UTF-8</propertiesEncoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<release>${java.release}</release>
<showWarnings>true</showWarnings>
<failOnWarning>true</failOnWarning>
<compilerArgs>
<arg>-Xlint:all,-processing,-requires-automatic</arg>
<arg>-parameters</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<!-- @{argLine} é preenchido pelo JaCoCo -->
<argLine>@{argLine} -Dfile.encoding=UTF-8</argLine>
<trimStackTrace>false</trimStackTrace>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
<Implementation-Vendor>CyberCore</Implementation-Vendor>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-wrapper-plugin</artifactId>
<version>${maven-wrapper-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Medium</threshold>
<failOnError>true</failOnError>
<excludeFilterFile>${maven.multiModuleProjectDirectory}/config/spotbugs/exclude.xml</excludeFilterFile>
<plugins>
<plugin>
<groupId>com.h3xstream.findsecbugs</groupId>
<artifactId>findsecbugs-plugin</artifactId>
<version>${findsecbugs-plugin.version}</version>
</plugin>
</plugins>
</configuration>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx-maven-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-build-environment</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>[25,)</version>
<message>CyberCore Signer exige JDK 25 LTS ou superior.</message>
</requireJavaVersion>
<requireMavenVersion>
<version>[3.9.0,)</version>
</requireMavenVersion>
<dependencyConvergence/>
<banDuplicatePomDependencyVersions/>
<requirePluginVersions/>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>spotbugs-check</id>
<phase>verify</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<!-- Build de DESENVOLVIMENTO: habilita o modo dev (flag dash-dash-dev). Nunca usar em releases. -->
<id>dev</id>
<properties>
<cybercore.build.flavor>development</cybercore.build.flavor>
</properties>
</profile>
<profile>
<!-- Execução rápida local: pula análise estática e cobertura -->
<id>fast</id>
<properties>
<spotbugs.skip>true</spotbugs.skip>
<jacoco.skip>true</jacoco.skip>
</properties>
</profile>
</profiles>
</project>