lightphe4j
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.serengil</groupId>
<artifactId>lightphe4j</artifactId>
<version>0.0.25</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>
<groupId>io.github.serengil</groupId>
<artifactId>lightphe4j</artifactId>
<version>0.0.25</version>
<packaging>jar</packaging>
<name>lightphe4j</name>
<description>A Lightweight Partially Homomorphic Encryption Library for Java</description>
<url>https://github.com/serengil/lightphe4j</url>
<inceptionYear>2026</inceptionYear>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>serengil</id>
<name>Sefik Ilkin Serengil</name>
<email>serengil@gmail.com</email>
<url>https://sefiks.com</url>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/serengil/lightphe4j.git</connection>
<developerConnection>scm:git:ssh://github.com:serengil/lightphe4j.git</developerConnection>
<url>https://github.com/serengil/lightphe4j/tree/main</url>
</scm>
<properties>
<maven.compiler.release>17</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<lombok.version>1.18.36</lombok.version>
<slf4j.version>2.0.16</slf4j.version>
<junit.version>5.11.4</junit.version>
<spotless.version>2.44.0</spotless.version>
<checkstyle.plugin.version>3.6.0</checkstyle.plugin.version>
<checkstyle.version>10.21.1</checkstyle.version>
<spotbugs.version>4.8.6.6</spotbugs.version>
<jacoco.version>0.8.12</jacoco.version>
<assertj.version>3.27.3</assertj.version>
<mockito.version>5.14.2</mockito.version>
</properties>
<dependencies>
<!-- Logging facade: the library binds to whatever the host application provides. -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- Compile-time only: annotation processing produces the boilerplate. -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
<!-- Test scope only -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${assertj.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>${slf4j.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.13.0</version>
<configuration>
<release>${maven.compiler.release}</release>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-Xlint:all,-processing</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<!--
Pinned below 3.11.x: that series intermittently fails the
release build with "Unable to compute stale date:
target/reports/apidocs/packages" from its incremental-build
staleness check. Reproduced at roughly 1 run in 3 here.
-->
<version>3.10.1</version>
<configuration>
<source>${maven.compiler.release}</source>
<doclint>none</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
</plugin>
<!-- Formatting: `mvn spotless:check` verifies, `mvn spotless:apply` rewrites. -->
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless.version}</version>
<configuration>
<java>
<googleJavaFormat>
<version>1.24.0</version>
<style>AOSP</style>
</googleJavaFormat>
<removeUnusedImports/>
<trimTrailingWhitespace/>
<endWithNewline/>
</java>
</configuration>
</plugin>
<!-- Lint: `mvn checkstyle:check`. Formatting is left to Spotless. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${checkstyle.plugin.version}</version>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
<configuration>
<configLocation>config/checkstyle/checkstyle.xml</configLocation>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<consoleOutput>true</consoleOutput>
<failsOnError>true</failsOnError>
<violationSeverity>warning</violationSeverity>
<!-- Curve tables are generated; do not lint them. -->
<excludes>**/ecc/curves/*Data.java</excludes>
</configuration>
</plugin>
<!-- Static analysis: `mvn spotbugs:check`, `mvn spotbugs:gui` to browse findings. -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Medium</threshold>
<includeTests>false</includeTests>
<excludeFilterFile>config/spotbugs/exclude.xml</excludeFilterFile>
</configuration>
</plugin>
<!-- Coverage: `mvn verify` writes target/site/jacoco/index.html. -->
<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>verify</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<!--
Activate with -Prelease to sign the artifacts and stage them for
Maven Central. Requires a configured GPG key and the Central
Portal credentials in ~/.m2/settings.xml under the id "central".
-->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version>
<configuration>
<!--
The signing key is chosen with -Dgpg.keyname=<key id>,
which maven-gpg-plugin reads natively; do not declare
<keyname> here, because an unset property would expand
to an empty string and gpg rejects that with
"skipped: Invalid user ID".
-->
<gpgArguments>
<!--
Lets the passphrase come from -Dgpg.passphrase
or an environment variable instead of a GUI
prompt, which is what CI and headless shells
need. Interactive runs still prompt normally.
-->
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.7.0</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>false</autoPublish>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>