<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2023 The original authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <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>dev.morling.demos</groupId> <artifactId>average</artifactId> <version>1.0.0-SNAPSHOT</version> <properties> <maven.compiler.parameters>true</maven.compiler.parameters> <maven.compiler.release>21</maven.compiler.release> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> </properties> <name>My OSS Project</name> <description>My Latest OSS Project</description> <inceptionYear>2021</inceptionYear> <url>tbd.</url> <licenses> <license> <name>Apache-2.0</name> <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> <distribution>repo</distribution> </license> </licenses> <dependencyManagement> <dependencies> <dependency> <groupId>org.junit</groupId> <artifactId>junit-bom</artifactId> <version>5.8.1</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.assertj</groupId> <artifactId>assertj-core</artifactId> <version>3.21.0</version> <scope>test</scope> </dependency> </dependencies> <build> <!-- Keep alphabetic order --> <pluginManagement> <plugins> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <version>4.1</version> </plugin> <plugin> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <version>2.16.0</version> <configuration> <configFile>etc/eclipse-formatter-config.xml</configFile> </configuration> </plugin> <plugin> <groupId>net.revelc.code</groupId> <artifactId>impsort-maven-plugin</artifactId> <version>1.9.0</version> <configuration> <groups>java.,javax.,org.,com.</groups> <removeUnused>true</removeUnused> <staticAfter>true</staticAfter> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.12.1</version> <configuration> <parameters>true</parameters> <compilerArgs> <!-- IntelliJ does not yet support the enablePreview configuration option. Therefore, we use a compiler argument. See https://youtrack.jetbrains.com/issue/IDEA-296303 --> <compilerArg>--enable-preview</compilerArg> <compilerArg>--add-modules</compilerArg> <compilerArg>java.base,jdk.incubator.vector</compilerArg> <compilerArg>--add-opens=java.base/java.lang=ALL-UNNAMED</compilerArg> <compilerArg>--add-opens=java.base/jdk.internal.util=ALL-UNNAMED</compilerArg> </compilerArgs> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>3.1.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.1.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <version>3.3.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>3.1.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.2.0</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>3.12.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.2.3</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-wrapper-plugin</artifactId> <version>3.2.0</version> </plugin> </plugins> </pluginManagement> </build> <profiles> <profile> <id>ci</id> <build> <plugins> <plugin> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <executions> <execution> <id>validate-format</id> <goals> <goal>validate</goal> </goals> <phase>validate</phase> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>qa</id> <activation> <property> <name>!quick</name> </property> </activation> <build> <plugins> <plugin> <groupId>com.mycila</groupId> <artifactId>license-maven-plugin</artifactId> <configuration> <header>etc/license.txt</header> <strictCheck>true</strictCheck> <aggregate>true</aggregate> <excludes> <exclude>LICENSE.txt</exclude> <exclude>**/.dontdelete</exclude> <exclude>**/measurements*.txt</exclude> <exclude>**/measurements*.out</exclude> <exclude>out_expected.txt</exclude> <exclude>github_users.txt</exclude> </excludes> </configuration> <executions> <execution> <goals> <goal>check</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>net.revelc.code.formatter</groupId> <artifactId>formatter-maven-plugin</artifactId> <executions> <execution> <id>format</id> <goals> <goal>format</goal> </goals> <phase>process-sources</phase> </execution> </executions> </plugin> <!-- <plugin>--> <!-- <groupId>net.revelc.code</groupId>--> <!-- <artifactId>impsort-maven-plugin</artifactId>--> <!-- <executions>--> <!-- <execution>--> <!-- <id>sort-imports</id>--> <!-- <goals>--> <!-- <goal>sort</goal>--> <!-- </goals>--> <!-- <phase>process-sources</phase>--> <!-- </execution>--> <!-- </executions>--> <!-- </plugin>--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> <executions> <execution> <id>enforce-plugin-versions</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <requireJavaVersion> <version>${maven.compiler.release}</version> </requireJavaVersion> <requirePluginVersions> <banLatest>true</banLatest> <banRelease>true</banRelease> <banSnapshots>true</banSnapshots> <phases>clean,deploy,site</phases> </requirePluginVersions> </rules> </configuration> </execution> </executions> </plugin> </plugins> </build> </profile> <profile> <id>quick</id> <activation> <property> <name>quick</name> </property> </activation> <properties> <skipTests>true</skipTests> </properties> </profile> </profiles> </project>