equilibrium
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.soulcodingmatt</groupId>
<artifactId>equilibrium</artifactId>
<version>1.0.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>io.github.soulcodingmatt</groupId>
<artifactId>equilibrium</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
<name>Project Equilibrium</name>
<description>Project Equilibrium — a Java annotation processor for generating DTOs, transport types, and value container classes</description>
<url>https://github.com/soulcodingmatt/equilibrium</url>
<licenses>
<license>
<name>GNU General Public License, Version 3</name>
<url>https://www.gnu.org/licenses/gpl-3.0.html</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>soulcodingmatt</id>
<name>Matthias Lange</name>
<email>matt@soulcodingmatt.com</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/soulcodingmatt/equilibrium.git</connection>
<developerConnection>scm:git:ssh://git@github.com/soulcodingmatt/equilibrium.git</developerConnection>
<tag>HEAD</tag>
<url>https://github.com/soulcodingmatt/equilibrium</url>
</scm>
<distributionManagement>
<repository>
<id>central</id>
<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
</repository>
<snapshotRepository>
<id>central</id>
<url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>21</maven.compiler.release>
<auto-service.version>1.1.1</auto-service.version>
<junit-jupiter.version>5.13.1</junit-jupiter.version>
<compile-testing.version>0.21.0</compile-testing.version>
<lombok.version>1.18.36</lombok.version>
<!-- Align Truth vs compile-testing (older checker-qual / Guava transitively). -->
<checker-qual.version>3.26.0</checker-qual.version>
<guava.version>33.4.8-jre</guava.version>
<!-- Match Guava’s transitive error_prone; Truth pulls an older one. -->
<error_prone_annotations.version>2.36.0</error_prone_annotations.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.checkerframework</groupId>
<artifactId>checker-qual</artifactId>
<version>${checker-qual.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${error_prone_annotations.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- Auto-service for annotation processor -->
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>${auto-service.version}</version>
<scope>provided</scope>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Jakarta Bean Validation -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.1.1</version>
<scope>provided</scope>
</dependency>
<!-- Test dependencies -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${junit-jupiter.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.google.testing.compile</groupId>
<artifactId>compile-testing</artifactId>
<version>${compile-testing.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<filtering>false</filtering>
<directory>src/main/resources</directory>
<excludes>
<exclude>equilibrium-build-version.txt</exclude>
</excludes>
</resource>
<resource>
<filtering>true</filtering>
<directory>src/main/resources</directory>
<includes>
<include>equilibrium-build-version.txt</include>
</includes>
</resource>
<!-- Single source of truth: root LICENSE / NOTICE → JAR META-INF -->
<resource>
<targetPath>META-INF</targetPath>
<directory>${project.basedir}</directory>
<includes>
<include>LICENSE</include>
<include>NOTICE</include>
</includes>
</resource>
</resources>
<plugins>
<!-- Annotation processing -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<executions>
<!-- Run annotation processors -->
<execution>
<id>process-annotations</id>
<goals>
<goal>compile</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<proc>only</proc>
<release>${maven.compiler.release}</release>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>-Xlint:-processing</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>${auto-service.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</execution>
<!-- Compile sources -->
<execution>
<id>default-compile</id>
<goals>
<goal>compile</goal>
</goals>
<phase>compile</phase>
<configuration>
<proc>none</proc>
<release>${maven.compiler.release}</release>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>-Xlint:all</arg>
</compilerArgs>
</configuration>
</execution>
</executions>
</plugin>
<!-- Run unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.5</version>
</plugin>
<!-- Spotless -->
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<lineEndings>PRESERVE</lineEndings>
<java>
<includes>
<include>src/main/java/**/*.java</include>
<include>src/test/java/**/*.java</include>
</includes>
<endWithNewline/>
<formatAnnotations/>
<googleJavaFormat>
<style>GOOGLE</style>
</googleJavaFormat>
<removeUnusedImports/>
<trimTrailingWhitespace/>
</java>
<pom>
<includes>
<include>pom.xml</include>
</includes>
<sortPom/>
</pom>
<markdown>
<includes>
<include>**/*.md</include>
</includes>
<excludes>
<exclude>**/target/**</exclude>
<exclude>**/build/**</exclude>
<exclude>**/node_modules/**</exclude>
</excludes>
<flexmark/>
</markdown>
<formats>
<format>
<includes>
<include>**/*.xml</include>
<include>**/*.yml</include>
<include>**/*.yaml</include>
<include>**/*.properties</include>
<include>**/*.json</include>
<include>**/*.gitignore</include>
</includes>
<excludes>
<exclude>.idea/**</exclude>
<exclude>**/.idea/**</exclude>
<exclude>pom.xml</exclude>
<exclude>**/target/**</exclude>
<exclude>**/node_modules/**</exclude>
<exclude>**/dist/**</exclude>
<exclude>**/build/**</exclude>
<!-- ASCII art: must not be trimmed or newline-normalized -->
<exclude>src/main/resources/equilibrium-logo.txt</exclude>
</excludes>
<trimTrailingWhitespace/>
<endWithNewline/>
</format>
</formats>
</configuration>
<executions>
<execution>
<id>check-formatting</id>
<goals>
<goal>check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<!-- Implementation-Version for Package.getImplementationVersion() (JAR); exploded classpath
uses equilibrium-build-version.txt (filtered ${project.version}) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<!-- Sources JAR -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Javadoc JAR (erforderlich für Maven Central) -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.6.3</version>
<configuration>
<!-- javadoc:javadoc uses JavadocReport → reportOutputDirectory (not outputDirectory alone) -->
<reportOutputDirectory>${project.build.directory}/apidocs</reportOutputDirectory>
<outputDirectory>${project.build.directory}/apidocs</outputDirectory>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Add generated sources to source path -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>add-source</id>
<goals>
<goal>add-source</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<sources>
<source>${project.build.directory}/generated-sources/annotations</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</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>true</autoPublish>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>