<?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>org.badvision</groupId> <artifactId>jace</artifactId> <version>3.1</version> <packaging>jar</packaging> <name>Jace</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <mainClass>jace.JaceLauncher</mainClass> <netbeans.hint.license>apache20</netbeans.hint.license> <lwjgl.version>3.3.4</lwjgl.version> </properties> <organization> <!-- Used as the 'Vendor' for JNLP generation --> <name>org.badvision</name> </organization> <build> <finalName>Jace</finalName> <plugins> <plugin> <groupId>com.gluonhq</groupId> <artifactId>gluonfx-maven-plugin</artifactId> <version>1.0.23</version> <configuration> <mainClass>jace.JaceLauncher</mainClass> <resourcesList>ceAppl <resource>.*</resource> </resourcesList> <releaseConfiguration> <vendor>org.badvision</vendor> <skipSigning>true</skipSigning> </releaseConfiguration> </configuration> </plugin> <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.8</version> <configuration> <mainClass>jace/jace.JaceLauncher</mainClass> <executions> <execution> <!-- Default configuration for running --> <!-- Usage: mvn clean javafx:run --> <id>default-cli</id> </execution> <execution> <!-- Configuration for manual attach debugging --> <!-- Usage: mvn clean javafx:run@debug --> <id>debug</id> <configuration> <options> <option> -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000</option> </options> </configuration> </execution> <execution> <!-- Configuration for automatic IDE debugging --> <id>ide-debug</id> <configuration> <options> <option> -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:8000</option> </options> </configuration> </execution> <execution> <!-- Configuration for automatic IDE profiling --> <id>ide-profile</id> <configuration> <options> <option>${profiler.jvmargs.arg1}</option> <option>${profiler.jvmargs.arg2}</option> <option>${profiler.jvmargs.arg3}</option> <option>${profiler.jvmargs.arg4}</option> <option>${profiler.jvmargs.arg5}</option> </options> </configuration> </execution> </executions> </configuration> </plugin> <plugin> <groupId>org.moditect</groupId> <artifactId>moditect-maven-plugin</artifactId> <version>1.2.2.Final</version> <executions> <execution> <?m2e execute onConfiguration,onIncremental?> <id>add-module-infos</id> <phase>generate-resources</phase> <goals> <goal>add-module-info</goal> </goals> <configuration> <modules> <module> <artifact> <groupId>org.xerial.thirdparty</groupId> <artifactId>nestedvm</artifactId> <version>1.0</version> </artifact> <moduleInfoSource> module nestedvm { exports org.ibex.nestedvm; exports org.ibex.nestedvm.util; } </moduleInfoSource> </module> </modules> <overwriteExistingFiles>true</overwriteExistingFiles> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.12</version> <configuration> <excludes> <exclude>jace/assembly/AcmeCrossAssembler.class</exclude> </excludes> </configuration> <executions> <execution> <id>default-prepare-agent</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>default-report</id> <goals> <goal>report</goal> </goals> </execution> <execution> <id>default-check</id> <goals> <goal>check</goal> </goals> <configuration> <rules> <rule> <element>BUNDLE</element> <limits> <limit> <counter>COMPLEXITY</counter> <value>COVEREDRATIO</value> <minimum>0.31</minimum> </limit> </limits> </rule> </rules> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>3.7.0</version> <executions> <execution> <id>resolve-mockito-agent</id> <goals> <goal>properties</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.5</version> <configuration> <!-- Set a global timeout for all tests --> <forkedProcessTimeoutInSeconds>30</forkedProcessTimeoutInSeconds> <rerunFailingTestsCount>0</rerunFailingTestsCount> <!-- Configure Mockito as a Java agent to prevent "self-attaching" warnings --> <argLine>@{argLine} -javaagent:${org.mockito:mockito-core:jar}</argLine> <!-- Add additional configuration to fix ProgramException class loading issue --> <additionalClasspathElements> <additionalClasspathElement>${project.build.testOutputDirectory}</additionalClasspathElement> </additionalClasspathElements> <useSystemClassLoader>true</useSystemClassLoader> <useManifestOnlyJar>false</useManifestOnlyJar> </configuration> <executions> <!-- Special configuration for sound tests --> <execution> <id>sound-tests</id> <configuration> <includes> <include>**/Sound*.java</include> <include>**/Votrax*.java</include> </includes> <forkedProcessTimeoutInSeconds>60</forkedProcessTimeoutInSeconds> <systemPropertyVariables> <java.awt.headless>false</java.awt.headless> </systemPropertyVariables> </configuration> </execution> </executions> </plugin> </plugins> </build> <dependencyManagement> <dependencies> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-bom</artifactId> <version>${lwjgl.version}</version> <scope>import</scope> <type>pom</type> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>5.16.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <scope>test</scope> <version>2.11.0</version> </dependency> <dependency> <groupId>org.xerial.thirdparty</groupId> <artifactId>nestedvm</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-base</artifactId> <version>21.0.4</version> <type>jar</type> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-fxml</artifactId> <version>21.0.4</version> <type>jar</type> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-web</artifactId> <version>21.0.4</version> <type>jar</type> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-graphics</artifactId> <version>21.0.4</version> <type>jar</type> </dependency> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-swing</artifactId> <version>21.0.4</version> <type>jar</type> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl</artifactId> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-openal</artifactId> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-stb</artifactId> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-glfw</artifactId> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl</artifactId> <classifier>${lwjgl.natives}</classifier> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-openal</artifactId> <classifier>${lwjgl.natives}</classifier> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-stb</artifactId> <classifier>${lwjgl.natives}</classifier> </dependency> <dependency> <groupId>org.lwjgl</groupId> <artifactId>lwjgl-glfw</artifactId> <classifier>${lwjgl.natives}</classifier> </dependency> </dependencies> <profiles> <profile> <id>default</id> <activation> <file> <exists>target/classes</exists> </file> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>17</source> <target>17</target> <annotationProcessorPaths> <path> <groupId>org.badvision</groupId> <artifactId>jace</artifactId> <version>3.1</version> </path> </annotationProcessorPaths> <annotationProcessors>jace.config.InvokableActionAnnotationProcessor</annotationProcessors> </configuration> <version>3.11.0</version> </plugin> </plugins> </build> </profile> <profile> <id>firstRun</id> <activation> <file> <missing>target/classes</missing> </file> </activation> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>17</source> <target>17</target> </configuration> <version>3.13.0</version> </plugin> </plugins> </build> </profile> <profile> <id>lwjgl-natives-linux-amd64</id> <activation> <os> <family>unix</family> <arch>amd64</arch> </os> </activation> <properties> <lwjgl.natives>natives-linux</lwjgl.natives> </properties> </profile> <profile> <id>lwjgl-natives-macos-x86_64</id> <activation> <os> <family>mac</family> <arch>x86_64</arch> </os> </activation> <properties> <lwjgl.natives>natives-macos</lwjgl.natives> </properties> </profile> <profile> <id>lwjgl-natives-macos-arm64</id> <activation> <os> <family>mac</family> <arch>aarch64</arch> </os> </activation> <properties> <lwjgl.natives>natives-macos-arm64</lwjgl.natives> </properties> </profile> <profile> <id>lwjgl-natives-windows-amd64</id> <activation> <os> <family>windows</family> <arch>amd64</arch> </os> </activation> <properties> <lwjgl.natives>natives-windows</lwjgl.natives> </properties> </profile> </profiles> </project>