| Group ID: | io.github.stevenchoo |
|---|---|
| Artifact ID: | java-starter |
| Version: | 1.0.1 |
| Last modified: | 07.05.2025 07:36 |
| Packaging: | pom |
| Name: | Java Starter |
| Description: | Parent POM for Java projects |
| URL: | https://github.com/StevenChoo/personal-starter-pom |
| License: | The MIT License |
| Source: | https://github.com/StevenChoo/personal-starter-pom |
| Developers: | Steven Choo |
|
|
|
| Size: | 0.0 KB |
| Download: | https://repo.maven.apache.org/maven2/io/github/stevenchoo/java-starter/1.0.1/java-starter-1.0.1.pom |
| POM: |
Show
hide
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (C) 2025 Steven Choo <info@stevenchoo.nl>
~
~ MIT License. See the LICENSE file in the root directory or <http://www.opensource.org/licenses/mit-license.php>
-->
<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.stevenchoo</groupId>
<artifactId>java-starter</artifactId>
<version>1.0.1</version>
<packaging>pom</packaging>
<name>Java Starter</name>
<description>Parent POM for Java projects</description>
<properties>
<!-- Project configuration -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Language configuration -->
<java.version>21</java.version>
<!-- Maven Plugin config -->
<!-- Copied from spring-boot-starter for maven-resources-plugin -->
<resource.delimiter>@</resource.delimiter>
<!-- Parallel IT tests -->
<surefire.forkCount>3</surefire.forkCount>
<!-- Disable code coverage check by default for performance -->
<jacoco.skip>true</jacoco.skip>
<strict.enforcer>false</strict.enforcer>
<strict.pmd>false</strict.pmd>
<strict.spotbugs>false</strict.spotbugs>
<strict.sort>WARN</strict.sort>
<strict.dependency-analyze>false</strict.dependency-analyze>
<skip.spotless>true</skip.spotless>
<!-- Dependency versions in order -->
<spring-boot.version>3.4.5</spring-boot.version>
<spring-data.version>2024.1.5</spring-data.version>
<jackson.version>2.19.0</jackson.version>
<junit.version>5.12.2</junit.version>
<assertj.version>3.27.3</assertj.version>
<!-- Maven dependencies in order -->
<maven-clean-plugin.version>3.4.1</maven-clean-plugin.version>
<maven-install-plugin.version>3.1.4</maven-install-plugin.version>
<maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version>
<maven-site-plugin.version>3.21.0</maven-site-plugin.version>
<maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
<maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
<!-- Maven QA plugin versions -->
<maven-surefire-plugin.version>3.5.2</maven-surefire-plugin.version>
<!-- Used by maven surefire-->
<asm.version>9.8</asm.version>
<maven-failsafe-plugin.version>3.5.2</maven-failsafe-plugin.version>
<maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
<extra-enforcer-rules.version>1.10.0</extra-enforcer-rules.version>
<maven-pmd-plugin.version>3.26.0</maven-pmd-plugin.version>
<pmd.version>7.13.0</pmd.version>
<pmd-compat6.version>7.2.0</pmd-compat6.version>
<spotbugs-maven-plugin.version>4.9.3.0</spotbugs-maven-plugin.version>
<spotbugs.version>4.9.3</spotbugs.version>
<sortpom-maven-plugin.version>3.4.0</sortpom-maven-plugin.version>
<spotless-maven-plugin.version>2.44.3</spotless-maven-plugin.version>
<spotless-palantir-java-format.version>2.48.0</spotless-palantir-java-format.version>
<spotless-ktlint.version>1.3.1</spotless-ktlint.version>
<maven-dependency-plugin.version>3.8.1</maven-dependency-plugin.version>
<jacoco-maven-plugin.version>0.8.12</jacoco-maven-plugin.version>
<!-- Maven release plugin versions -->
<maven-gpg-plugin.version>3.2.7</maven-gpg-plugin.version>
<central-publishing-maven-plugin.version>0.7.0</central-publishing-maven-plugin.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-bom</artifactId>
<version>${spring-data.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-bom</artifactId>
<version>${assertj.version}</version>
<type>pom</type>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<!-- Default dependencies - Exclude in project if needed -->
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<!-- We almost always will use JSON serialization / deserialization -->
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<!-- Configure everything in the plugin management to keep things clear -->
<pluginManagement>
<plugins>
<!-- PMD requires best practise to define versions for plugins that are bound to default lifecycles -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven-install-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${maven-site-plugin.version}</version>
</plugin>
<!-- Maven Build plugins -->
<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>
<!-- To generate metadata for reflection on method needed for Spring Boot-->
<parameters>true</parameters>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
<configuration>
<propertiesEncoding>${project.build.sourceEncoding}</propertiesEncoding>
<delimiters>
<!-- Default delimiter used by Spring Boot -->
<delimiter>${resource.delimiter}</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<!-- Maven Test plugins -->
<plugin>
<!-- unit testing -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<!-- parallel testing -->
<forkCount>${surefire.forkCount}</forkCount>
<reuseForks>true</reuseForks>
<runOrder>random</runOrder>
<includes>
<include>**/*Test.*</include>
</includes>
</configuration>
<dependencies>
<dependency>
<!-- See https://asm.ow2.io/ -->
<groupId>org.ow2.asm</groupId>
<!-- ASM is an all-purpose Java bytecode manipulation and analysis framework. -->
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<!-- integration testing-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${maven-failsafe-plugin.version}</version>
<configuration>
<reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory>
<includes>
<include>**/*IT.java</include>
<include>**/*Spec.java</include>
</includes>
<!-- Sets the VM argument line used when integration tests are run. -->
<argLine>${failsafeArgLine}</argLine>
</configuration>
</plugin>
<!-- Quality plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>${extra-enforcer-rules.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>enforce-plugin-versions</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<message><![CDATA[===> Only Java version ${java.version} or higher is allowed ===>]]></message>
<version>[${java.version},)</version>
</requireJavaVersion>
<requirePluginVersions>
<message><![CDATA[===> Best Practice is to always define plugin versions! ===>]]></message>
<banLatest>true</banLatest>
<banRelease>true</banRelease>
<banSnapshots>true</banSnapshots>
<phases>clean,deploy,site</phases>
<unCheckedPluginList>org.springframework.boot:spring-boot-maven-plugin</unCheckedPluginList>
</requirePluginVersions>
<enforceBytecodeVersion>
<maxJdkVersion>${java.version}</maxJdkVersion>
<excludes>
<exclude>org.mindrot:jbcrypt</exclude>
<!-- TODO: Remove once all services are over to Java 22+ (tomcat-embed-core lib contains Java 22 compiled classes to support OpenSSL 3.0+). -->
<exclude>org.apache.tomcat.embed:tomcat-embed-core</exclude>
</excludes>
</enforceBytecodeVersion>
</rules>
<fail>${strict.enforcer}</fail>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${maven-pmd-plugin.version}</version>
<configuration>
<verbose>true</verbose>
<printFailingErrors>true</printFailingErrors>
<failOnViolation>${strict.pmd}</failOnViolation>
<failurePriority>3</failurePriority>
<analysisCache>true</analysisCache>
<linkXRef>false</linkXRef>
<excludeRoots>
<excludeRoot>${project.build.directory}/generated-sources</excludeRoot>
<excludeRoot>${project.build.directory}/generated-sources/annotations</excludeRoot>
</excludeRoots>
</configuration>
<dependencies>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-compat6</artifactId>
<version>${pmd-compat6.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-core</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-java</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-javascript</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-jsp</artifactId>
<version>${pmd.version}</version>
</dependency>
<dependency>
<groupId>net.sourceforge.pmd</groupId>
<artifactId>pmd-xml</artifactId>
<version>${pmd.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>pmd-check</id>
<goals>
<!-- fails the build if there were any PMD violations in the source code. -->
<goal>check</goal>
<!-- extra CPD check -->
<goal>cpd-check</goal>
</goals>
<phase>process-classes</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>${spotbugs-maven-plugin.version}</version>
<configuration>
<effort>Max</effort>
<threshold>Low</threshold>
<failOnError>${strict.spotbugs}</failOnError>
</configuration>
<dependencies>
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>${spotbugs.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>spotbugs-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>process-classes</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<version>${sortpom-maven-plugin.version}</version>
<configuration>
<predefinedSortOrder>custom_1</predefinedSortOrder>
<lineSeparator>\n</lineSeparator>
<encoding>${project.build.sourceEncoding}</encoding>
<sortProperties>false</sortProperties>
<sortDependencies>scope,groupId,artifactId</sortDependencies>
<sortDependencyManagement>none</sortDependencyManagement>
<nrOfIndentSpace>4</nrOfIndentSpace>
<expandEmptyElements>false</expandEmptyElements>
<createBackupFile>false</createBackupFile>
<verifyFail>${strict.sort}</verifyFail>
</configuration>
<executions>
<execution>
<id>sortpom-verify</id>
<goals>
<goal>verify</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless-maven-plugin.version}</version>
<configuration>
<skip>${skip.spotless}</skip>
<java>
<toggleOffOn/>
<includes>
<include>src/main/java/**/*.java</include>
<include>src/test/java/**/*.java</include>
</includes>
<palantirJavaFormat>
<version>${spotless-palantir-java-format.version}</version>
<style>PALANTIR</style>
<formatJavadoc>true</formatJavadoc>
</palantirJavaFormat>
<importOrder/>
<removeUnusedImports/>
</java>
</configuration>
<executions>
<execution>
<id>spotless-check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven-dependency-plugin.version}</version>
<configuration>
<failOnWarning>${strict.dependency-analyze}</failOnWarning>
<ignoredUnusedDeclaredDependencies>
<ignoredUnusedDeclaredDependency>com.fasterxml.jackson.core*</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>com.fasterxml.jackson.datatype*</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>org.projectlombok:lombok</ignoredUnusedDeclaredDependency>
<ignoredUnusedDeclaredDependency>org.assertj:*</ignoredUnusedDeclaredDependency>
</ignoredUnusedDeclaredDependencies>
</configuration>
<executions>
<execution>
<goals>
<goal>analyze-only</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<!-- Code coverage. Used also by Sonar-->
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco-maven-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<!-- attached to Maven test phase -->
<execution>
<id>report</id>
<goals>
<goal>report</goal>
</goals>
<phase>test</phase>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<!-- Add plugins that should be enabled for every project -->
<plugins>
<!-- Default plugins not include since they come from maven itself. -->
<!-- See https://maven.apache.org/ref/3.9.9/maven-core/default-bindings.html#Plugin_bindings_for_pom_packaging -->
<!-- Quality plugins -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<!-- Included since it`s not enabled by default -->
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<url>https://github.com/StevenChoo/personal-starter-pom</url>
<licenses>
<license>
<name>The MIT License</name>
<url>http://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<name>Steven Choo</name>
<email>dev@stevenchoo.nl</email>
</developer>
</developers>
<scm>
<connection>scm:git:git://github.com/StevenChoo/personal-starter-pom.git</connection>
<developerConnection>scm:git:git://github.com/StevenChoo/personal-starter-pom.git</developerConnection>
<url>https://github.com/StevenChoo/personal-starter-pom</url>
</scm>
<issueManagement>
<system>GitHub Issues</system>
<url>https://github.com/StevenChoo/personal-starter-pom/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/StevenChoo/personal-starter-pom/actions</url>
</ciManagement>
<profiles>
<profile>
<id>enable-code-coverage</id>
<properties>
<jacoco.skip>false</jacoco.skip>
</properties>
</profile>
<profile>
<id>skip-quality-checks</id>
<activation>
<property>
<name>quality.skip</name>
<value>true</value>
</property>
</activation>
<properties>
<cpd.skip>true</cpd.skip>
<enforcer.skip>true</enforcer.skip>
<mdep.analyze.skip>true</mdep.analyze.skip>
<pmd.skip>true</pmd.skip>
<sort.skip>true</sort.skip>
<spotbugs.skip>true</spotbugs.skip>
<skip.spotless>true</skip.spotless>
</properties>
</profile>
<profile>
<id>strict-quality-checks</id>
<activation>
<property>
<name>strict</name>
<value>true</value>
</property>
</activation>
<properties>
<strict.enforcer>true</strict.enforcer>
<strict.pmd>true</strict.pmd>
<strict.spotbugs>true</strict.spotbugs>
<strict.sort>STOP</strict.sort>
<strict.dependency-analyze>true</strict.dependency-analyze>
<skip.spotless>false</skip.spotless>
</properties>
</profile>
<profile>
<id>format</id>
<properties>
<skip.spotless>false</skip.spotless>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<executions>
<execution>
<id>spotless-apply</id>
<goals>
<goal>apply</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<configuration>
<verifyFail>sort</verifyFail>
</configuration>
<executions>
<execution>
<id>sortpom-sort</id>
<goals>
<goal>sort</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven-gpg-plugin.version}</version>
<executions>
<execution>
<goals>
<goal>sign</goal>
</goals>
<phase>verify</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central-publishing-maven-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>validated</waitUntil>
<checksums>all</checksums>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
|
| Maven: |
<dependency> <groupId>io.github.stevenchoo</groupId> <artifactId>java-starter</artifactId> <version>1.0.1</version> </dependency> |
| Gradle: | io.github.stevenchoo:java-starter:1.0.1 |
| Dependencies: |
|
| Dependency Graph: |
Show
Less
More
|
All rights reserved, (c) insoso.at, version 2.0.40, 2008-2026.
findJAR.com is part of the serFISH.com service network.
Other services: • Online clipboard • Free browser-based SSH client • and many more.