214 lines
7.1 KiB
XML
214 lines
7.1 KiB
XML
<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>com.workbenchclassic</groupId>
|
|
<artifactId>backend</artifactId>
|
|
<version>1</version>
|
|
<!-- WAR packaging for a web application -->
|
|
<packaging>war</packaging>
|
|
|
|
<properties>
|
|
<!-- Java 8 Compiler Settings -->
|
|
<maven.compiler.source>11</maven.compiler.source>
|
|
<maven.compiler.target>11</maven.compiler.target>
|
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
|
|
|
<!-- Versions -->
|
|
<junit.version>5.6.0</junit.version>
|
|
<maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version>
|
|
<maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version>
|
|
<checkstyle.version>8.45.1</checkstyle.version>
|
|
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version>
|
|
<jacoco-maven-plugin.version>0.8.4</jacoco-maven-plugin.version>
|
|
<maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version>
|
|
|
|
<!-- JaCoCo thresholds. Increase as you add tests. -->
|
|
<jacoco.unit-tests.limit.instruction-ratio>0%</jacoco.unit-tests.limit.instruction-ratio>
|
|
<jacoco.unit-tests.limit.branch-ratio>0%</jacoco.unit-tests.limit.branch-ratio>
|
|
<jacoco.unit-tests.limit.class-complexity>200</jacoco.unit-tests.limit.class-complexity>
|
|
<jacoco.unit-tests.limit.method-complexity>5</jacoco.unit-tests.limit.method-complexity>
|
|
</properties>
|
|
|
|
<dependencies>
|
|
|
|
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.core</groupId>
|
|
<artifactId>jersey-common</artifactId>
|
|
<version>2.35</version>
|
|
</dependency>
|
|
|
|
<!-- Jersey Server -->
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.containers</groupId>
|
|
<artifactId>jersey-container-servlet</artifactId>
|
|
<version>2.35</version>
|
|
</dependency>
|
|
|
|
<!-- JSON Support -->
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.media</groupId>
|
|
<artifactId>jersey-media-json-jackson</artifactId>
|
|
<version>2.35</version>
|
|
</dependency>
|
|
|
|
<!-- JUnit 5 for tests -->
|
|
|
|
<dependency>
|
|
<groupId>org.junit.jupiter</groupId>
|
|
<artifactId>junit-jupiter-engine</artifactId>
|
|
<version>${junit.version}</version>
|
|
<scope>test</scope>
|
|
</dependency>
|
|
|
|
<!-- Java EE 8 API (provided by the App Server) -->
|
|
<dependency>
|
|
<groupId>javax</groupId>
|
|
<artifactId>javaee-api</artifactId>
|
|
<version>8.0</version>
|
|
<scope>provided</scope>
|
|
</dependency>
|
|
|
|
<!-- JSON library (org.json). If you don't need it, remove this. -->
|
|
<dependency>
|
|
<groupId>org.json</groupId>
|
|
<artifactId>json</artifactId>
|
|
<version>20250107</version>
|
|
</dependency>
|
|
|
|
<!-- Jackson Databind for com.fasterxml imports (ObjectMapper, etc.) -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
<version>2.15.2</version> <!-- or the latest stable version -->
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<build>
|
|
<plugins>
|
|
<!-- Enforcer Plugin (requires Maven 3.6.3) -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-enforcer-plugin</artifactId>
|
|
<version>${maven-enforcer-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<goals>
|
|
<goal>enforce</goal>
|
|
</goals>
|
|
<configuration>
|
|
<rules>
|
|
<requireMavenVersion>
|
|
<version>3.6.3</version>
|
|
</requireMavenVersion>
|
|
</rules>
|
|
<fail>true</fail>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- Surefire for Unit Tests -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-surefire-plugin</artifactId>
|
|
<version>${maven-surefire-plugin.version}</version>
|
|
</plugin>
|
|
|
|
<!-- JaCoCo for Code Coverage -->
|
|
<plugin>
|
|
<groupId>org.jacoco</groupId>
|
|
<artifactId>jacoco-maven-plugin</artifactId>
|
|
<version>${jacoco-maven-plugin.version}</version>
|
|
<executions>
|
|
<execution>
|
|
<id>pre-unit-test</id>
|
|
<goals>
|
|
<goal>prepare-agent</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>post-unit-test</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>report</goal>
|
|
</goals>
|
|
</execution>
|
|
<execution>
|
|
<id>check-unit-test</id>
|
|
<phase>test</phase>
|
|
<goals>
|
|
<goal>check</goal>
|
|
</goals>
|
|
<configuration>
|
|
<dataFile>${project.build.directory}/jacoco.exec</dataFile>
|
|
<rules>
|
|
<rule>
|
|
<element>BUNDLE</element>
|
|
<limits>
|
|
<limit>
|
|
<counter>INSTRUCTION</counter>
|
|
<value>COVEREDRATIO</value>
|
|
<minimum>${jacoco.unit-tests.limit.instruction-ratio}</minimum>
|
|
</limit>
|
|
<limit>
|
|
<counter>BRANCH</counter>
|
|
<value>COVEREDRATIO</value>
|
|
<minimum>${jacoco.unit-tests.limit.branch-ratio}</minimum>
|
|
</limit>
|
|
</limits>
|
|
</rule>
|
|
<rule>
|
|
<element>CLASS</element>
|
|
<limits>
|
|
<limit>
|
|
<counter>COMPLEXITY</counter>
|
|
<value>TOTALCOUNT</value>
|
|
<maximum>300</maximum>
|
|
</limit>
|
|
</limits>
|
|
</rule>
|
|
<rule>
|
|
<element>METHOD</element>
|
|
<limits>
|
|
<limit>
|
|
<counter>COMPLEXITY</counter>
|
|
<value>TOTALCOUNT</value>
|
|
<maximum>300</maximum>
|
|
</limit>
|
|
</limits>
|
|
</rule>
|
|
</rules>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
|
|
<!-- WAR Plugin (if needed) -->
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-war-plugin</artifactId>
|
|
<version>3.3.2</version>
|
|
<configuration>
|
|
<!-- Additional war settings if needed -->
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
|
|
<reporting>
|
|
<plugins>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-javadoc-plugin</artifactId>
|
|
<version>${maven-javadoc-plugin.version}</version>
|
|
</plugin>
|
|
</plugins>
|
|
</reporting>
|
|
|
|
</project>
|