semantic-privacy-guard
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.sushegaad</groupId>
<artifactId>semantic-privacy-guard</artifactId>
<version>1.2.0</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
https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ================================================================
Maven Central coordinates — groupId MUST match your verified
namespace on central.sonatype.com: io.github.sushegaad
================================================================ -->
<groupId>io.github.sushegaad</groupId>
<artifactId>semantic-privacy-guard</artifactId>
<version>1.2.0</version>
<packaging>jar</packaging>
<name>Semantic Privacy Guard</name>
<description>
A Java middleware library that intercepts text, identifies sensitive PII
using a three-layer hybrid approach (Regex + Naive Bayes ML + Apache OpenNLP NER),
and redacts it before it leaves the corporate network — with stream-based processing
for memory-efficient handling of large files and log streams.
</description>
<url>https://github.com/Sushegaad/Semantic-Privacy-Guard</url>
<inceptionYear>2026</inceptionYear>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>sushegaad</id>
<name>Hemant Naik</name>
<email>hemant.naik@gmail.com</email>
<url>https://github.com/Sushegaad</url>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/Sushegaad/Semantic-Privacy-Guard.git</connection>
<developerConnection>scm:git:ssh://github.com/Sushegaad/Semantic-Privacy-Guard.git</developerConnection>
<url>https://github.com/Sushegaad/Semantic-Privacy-Guard/tree/main</url>
<tag>HEAD</tag>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/Sushegaad/Semantic-Privacy-Guard/issues</url>
</issueManagement>
<properties>
<java.version>17</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Plugin versions -->
<maven-compiler-plugin.version>3.12.1</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.2.5</maven-surefire-plugin.version>
<maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
<maven-source-plugin.version>3.3.0</maven-source-plugin.version>
<maven-javadoc-plugin.version>3.6.3</maven-javadoc-plugin.version>
<maven-gpg-plugin.version>3.2.4</maven-gpg-plugin.version>
<central-publishing-plugin.version>0.7.0</central-publishing-plugin.version>
<jacoco-maven-plugin.version>0.8.11</jacoco-maven-plugin.version>
<!-- Dependency versions -->
<junit.version>5.10.2</junit.version>
<opennlp.version>2.3.3</opennlp.version>
</properties>
<dependencies>
<!-- ===== Apache OpenNLP — optional; enables the NLP detection layer =====
Mark as optional so it is NOT pulled in transitively for library users
who do not call SemanticPrivacyGuard with nlpEnabled(true).
Users who want NLP must add this dependency themselves plus download
the Apache OpenNLP model files (see README.md#nlp-setup). -->
<dependency>
<groupId>org.apache.opennlp</groupId>
<artifactId>opennlp-tools</artifactId>
<version>${opennlp.version}</version>
<optional>true</optional>
</dependency>
<!-- ===== TEST SCOPE ONLY ===== -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- Compiler -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<release>${java.version}</release>
<compilerArgs>
<arg>-Xlint:all</arg>
<arg>-Xlint:-processing</arg>
</compilerArgs>
</configuration>
</plugin>
<!-- Surefire (JUnit 5) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
<excludes>
<exclude>**/*BenchmarkTest.java</exclude>
</excludes>
</configuration>
</plugin>
<!-- Reproducible JAR -->
<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>
</archive>
</configuration>
</plugin>
<!-- Sources JAR (required by Maven Central) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals><goal>jar-no-fork</goal></goals>
</execution>
</executions>
</plugin>
<!-- Javadoc JAR (required by Maven Central) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
<configuration>
<doclint>all,-missing</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals><goal>jar</goal></goals>
</execution>
</executions>
</plugin>
<!-- JaCoCo Coverage -->
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<goals><goal>prepare-agent</goal></goals>
</execution>
<execution>
<id>report</id>
<phase>test</phase>
<goals><goal>report</goal></goals>
</execution>
<execution>
<id>check</id>
<goals><goal>check</goal></goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- ================================================================
PROFILES
================================================================ -->
<profiles>
<!-- Benchmark profile — run with: mvn test -P benchmark -->
<profile>
<id>benchmark</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<includes>
<include>**/*BenchmarkTest.java</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Release profile — activated automatically by the publish workflow.
Signs all artifacts with GPG and publishes to Maven Central.
Activate locally with: mvn deploy -P release -->
<profile>
<id>release</id>
<build>
<plugins>
<!-- GPG signing (required by Maven Central) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals><goal>sign</goal></goals>
<configuration>
<!-- Key fingerprint passed via -Dgpg.keyname in CI -->
<gpgArguments>
<arg>--batch</arg>
<arg>--yes</arg>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- Central Publishing Plugin (replaces legacy Nexus staging) -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<!-- Matches the <server id> in the CI-generated settings.xml -->
<publishingServerId>central</publishingServerId>
<!-- Set to true for auto-release; false means manual review
on central.sonatype.com before the artifact goes live. -->
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>