296 lines
9.9 KiB
XML
296 lines
9.9 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>com.ldc.arcadiagenesis</groupId>
|
|
<artifactId>backendapi</artifactId>
|
|
<version>0.0.1-SNAPSHOT</version>
|
|
<packaging>pom</packaging>
|
|
<name>Arcadia Genesis Backend API</name>
|
|
<url/>
|
|
<licenses>
|
|
<license>
|
|
<name>MIT License</name>
|
|
<url>https://opensource.org/licenses/MIT</url>
|
|
<distribution>repo</distribution>
|
|
</license>
|
|
</licenses>
|
|
<developers>
|
|
<developer>
|
|
<id>jeremy</id>
|
|
<name>Jeremy Munsch</name>
|
|
<email>jeremy.munsch@ldc.fr</email>
|
|
</developer>
|
|
</developers>
|
|
<scm>
|
|
<connection/>
|
|
<developerConnection/>
|
|
<tag/>
|
|
<url/>
|
|
</scm>
|
|
|
|
<modules>
|
|
<module>src/common</module>
|
|
<module>src/domain</module>
|
|
<module>src/infrastructure</module>
|
|
<module>src/application</module>
|
|
<module>src/api/v1</module>
|
|
</modules>
|
|
|
|
<properties>
|
|
<java.version>25</java.version>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
|
<jspecify.version>1.0.0</jspecify.version>
|
|
<log4j.version>2.25.3</log4j.version>
|
|
<slf4j.version>2.0.17</slf4j.version>
|
|
<error-prone.version>2.36.0</error-prone.version>
|
|
<nullaway.version>0.12.6</nullaway.version>
|
|
<maven-compiler-plugin.version>3.14.1</maven-compiler-plugin.version>
|
|
<maven-checkstyle-plugin.version>3.6.0</maven-checkstyle-plugin.version>
|
|
<checkstyle.version>13.4.0</checkstyle.version>
|
|
<jacoco.version>0.8.13</jacoco.version>
|
|
<jacoco.minimum.coverage>0.80</jacoco.minimum.coverage>
|
|
<spotless.version>2.44.4</spotless.version>
|
|
<google-java-format.version>1.35.0</google-java-format.version>
|
|
</properties>
|
|
|
|
<dependencyManagement>
|
|
<dependencies>
|
|
<!-- Internal modules -->
|
|
<dependency>
|
|
<groupId>com.ldc.arcadiagenesis</groupId>
|
|
<artifactId>backendapi-common</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ldc.arcadiagenesis</groupId>
|
|
<artifactId>backendapi-domain</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ldc.arcadiagenesis</groupId>
|
|
<artifactId>backendapi-infrastructure</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.ldc.arcadiagenesis</groupId>
|
|
<artifactId>backendapi-application-core</artifactId>
|
|
<version>${project.version}</version>
|
|
</dependency>
|
|
|
|
<!-- External -->
|
|
<dependency>
|
|
<groupId>org.jspecify</groupId>
|
|
<artifactId>jspecify</artifactId>
|
|
<version>${jspecify.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.apache.logging.log4j</groupId>
|
|
<artifactId>log4j-core</artifactId>
|
|
<version>${log4j.version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.slf4j</groupId>
|
|
<artifactId>slf4j-api</artifactId>
|
|
<version>${slf4j.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
</dependencyManagement>
|
|
|
|
<build>
|
|
<pluginManagement>
|
|
<plugins>
|
|
|
|
<!-- Error Prone + NullAway -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>${maven-compiler-plugin.version}</version>
|
|
<configuration>
|
|
<source>${java.version}</source>
|
|
<target>${java.version}</target>
|
|
<encoding>UTF-8</encoding>
|
|
<compilerArgs>
|
|
<arg>-XDcompilePolicy=simple</arg>
|
|
<arg>-XDshould-stop.ifError=FLOW</arg>
|
|
<arg>-Xplugin:ErrorProne -Xep:NullAway:ERROR -XepOpt:NullAway:AnnotatedPackages=com.ldc.arcadiagenesis.backendapi</arg>
|
|
</compilerArgs>
|
|
<annotationProcessorPaths>
|
|
<path>
|
|
<groupId>com.google.errorprone</groupId>
|
|
<artifactId>error_prone_core</artifactId>
|
|
<version>${error-prone.version}</version>
|
|
</path>
|
|
<path>
|
|
<groupId>com.uber.nullaway</groupId>
|
|
<artifactId>nullaway</artifactId>
|
|
<version>${nullaway.version}</version>
|
|
</path>
|
|
</annotationProcessorPaths>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
<!-- Checkstyle (Google style) -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
<version>${maven-checkstyle-plugin.version}</version>
|
|
<dependencies>
|
|
<dependency>
|
|
<groupId>com.puppycrawl.tools</groupId>
|
|
<artifactId>checkstyle</artifactId>
|
|
<version>${checkstyle.version}</version>
|
|
</dependency>
|
|
</dependencies>
|
|
<configuration>
|
|
<configLocation>${maven.multiModuleProjectDirectory}/checkstyle/checkstyle.xml</configLocation>
|
|
<!-- <propertyExpansion>org.checkstyle.google.suppressionfilter.config=${maven.multiModuleProjectDirectory}/checkstyle/checkstyle-suppressions.xml</propertyExpansion> -->
|
|
<consoleOutput>true</consoleOutput>
|
|
<failsOnError>true</failsOnError>
|
|
<includeTestSourceDirectory>true</includeTestSourceDirectory>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>checkstyle-verify</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- JaCoCo -->
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>${jacoco.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>jacoco-prepare-agent</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>jacoco-report</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
<configuration>
|
|
<formats>
|
|
<format>HTML</format>
|
|
<format>XML</format>
|
|
</formats>
|
|
<outputDirectory>${project.reporting.outputDirectory}/jacoco</outputDirectory>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>jacoco-check</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<rule>
|
|
<element>BUNDLE</element>
|
|
<limits>
|
|
<limit>
|
|
<counter>INSTRUCTION</counter>
|
|
<value>COVEREDRATIO</value>
|
|
<minimum>${jacoco.minimum.coverage}</minimum>
|
|
</limit>
|
|
</limits>
|
|
</rule>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Spotless -->
|
|
<plugin>
|
|
<groupId>com.diffplug.spotless</groupId>
|
|
<artifactId>spotless-maven-plugin</artifactId>
|
|
<version>${spotless.version}</version>
|
|
<configuration>
|
|
<java>
|
|
<googleJavaFormat>
|
|
<version>${google-java-format.version}</version>
|
|
<style>GOOGLE</style>
|
|
</googleJavaFormat>
|
|
<removeUnusedImports/>
|
|
<trimTrailingWhitespace/>
|
|
<endWithNewline/>
|
|
</java>
|
|
</configuration>
|
|
<executions>
|
|
<execution>
|
|
<id>spotless-check</id>
|
|
<phase>verify</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- m2e: ignore spotless during IDE incremental builds -->
|
|
<plugin>
|
|
<groupId>org.eclipse.m2e</groupId>
|
|
<artifactId>lifecycle-mapping</artifactId>
|
|
<version>1.0.0</version>
|
|
<configuration>
|
|
<lifecycleMappingMetadata>
|
|
<pluginExecutions>
|
|
<pluginExecution>
|
|
<pluginExecutionFilter>
|
|
<groupId>com.diffplug.spotless</groupId>
|
|
<artifactId>spotless-maven-plugin</artifactId>
|
|
<versionRange>[0,)</versionRange>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
</pluginExecutionFilter>
|
|
<action>
|
|
<ignore/>
|
|
</action>
|
|
</pluginExecution>
|
|
</pluginExecutions>
|
|
</lifecycleMappingMetadata>
|
|
</configuration>
|
|
</plugin>
|
|
|
|
</plugins>
|
|
</pluginManagement>
|
|
|
|
<!-- Plugins applied to all modules -->
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<configuration>
|
|
<compilerArgs>
|
|
<arg>-parameters</arg>
|
|
</compilerArgs>
|
|
</configuration>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-checkstyle-plugin</artifactId>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>com.diffplug.spotless</groupId>
|
|
<artifactId>spotless-maven-plugin</artifactId>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
</project>
|