figlet
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.spannm</groupId>
<artifactId>figlet</artifactId>
<version>1.0.0</version>
</dependency><?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>io.github.spannm</groupId>
<artifactId>figlet</artifactId>
<version>1.0.0</version>
<packaging>pom</packaging>
<name>${project.artifactId}</name>
<description>Parent POM for figlet, a pure-Java library and Maven plugin for rendering ASCII art banners with FIGfont and TOIlet fonts</description>
<url>https://github.com/spannm/${project.artifactId}</url>
<inceptionYear>2026</inceptionYear>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>${developerId}</id>
<name>${developerName}</name>
<email>spannm@outlook.de</email>
</developer>
</developers>
<modules>
<module>figlet4j</module>
<module>figlet-fonts-figletorg</module>
<module>figlet-fonts-xero</module>
<module>figlet-maven-plugin</module>
</modules>
<scm>
<connection>scm:git:ssh://git@github.com/${developerId}/${project.artifactId}.git</connection>
<developerConnection>scm:git:ssh://git@github.com/${developerId}/${project.artifactId}.git</developerConnection>
<url>https://github.com/${developerId}/${project.artifactId}/tree/master</url>
<tag>figlet-1.0.0</tag>
</scm>
<issueManagement>
<system>GitHub</system>
<url>${project.url}/issues</url>
</issueManagement>
<distributionManagement>
<snapshotRepository>
<id>central</id>
<name>Sonatype Central Snapshots</name>
<url>${deploy.snapshot.url}</url>
</snapshotRepository>
<repository>
<id>central</id>
<name>Sonatype Central Staging Repository</name>
<url>https://central.sonatype.com</url>
</repository>
</distributionManagement>
<properties>
<releaseJavaVersion>11</releaseJavaVersion>
<buildJavaVersion>17</buildJavaVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss.SSS</maven.build.timestamp.format>
<project.rootDirectory>${maven.multiModuleProjectDirectory}</project.rootDirectory>
<child.project.url.inherit.append.path>false</child.project.url.inherit.append.path>
<deploy.snapshot.url>https://central.sonatype.com/repository/maven-snapshots/</deploy.snapshot.url>
<developerId>spannm</developerId>
<developerName>Markus Spann</developerName>
<!-- Dependency versions -->
<dep.assertj.version>3.27.7</dep.assertj.version>
<dep.checkstyle.version>12.3.1</dep.checkstyle.version>
<dep.junit.version>5.14.4</dep.junit.version>
<dep.mockito.version>5.23.0</dep.mockito.version>
<!-- Plugin versions (alphabetically) -->
<dep.plugin.central-publishing.version>0.11.0</dep.plugin.central-publishing.version>
<dep.plugin.checkstyle.version>3.6.0</dep.plugin.checkstyle.version>
<!-- last error-prone version compatible with Java 17; 2.43.0+ requires Java 21 -->
<dep.plugin.error-prone.version>2.42.0</dep.plugin.error-prone.version>
<dep.plugin.maven-compiler.version>3.15.0</dep.plugin.maven-compiler.version>
<dep.plugin.maven-deploy.version>3.1.3</dep.plugin.maven-deploy.version>
<dep.plugin.maven-enforcer.version>3.6.3</dep.plugin.maven-enforcer.version>
<dep.plugin.maven-failsafe.version>3.5.6</dep.plugin.maven-failsafe.version>
<dep.plugin.maven-gpg.version>3.2.8</dep.plugin.maven-gpg.version>
<dep.plugin.maven-invoker.version>3.10.1</dep.plugin.maven-invoker.version>
<dep.plugin.maven-jar.version>3.5.1</dep.plugin.maven-jar.version>
<dep.plugin.maven-javadoc.version>3.12.0</dep.plugin.maven-javadoc.version>
<dep.plugin.maven-plugin-plugin.version>3.15.2</dep.plugin.maven-plugin-plugin.version>
<dep.plugin.maven-release.version>3.3.1</dep.plugin.maven-release.version>
<dep.plugin.maven-resources.version>3.5.0</dep.plugin.maven-resources.version>
<dep.plugin.maven-source.version>3.4.0</dep.plugin.maven-source.version>
<dep.plugin.maven-surefire.version>3.5.6</dep.plugin.maven-surefire.version>
<dep.plugin.sortpom.version>4.0.0</dep.plugin.sortpom.version>
<dep.plugin.versions.version>2.21.0</dep.plugin.versions.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- test -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>${dep.junit.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.assertj</groupId>
<artifactId>assertj-core</artifactId>
<version>${dep.assertj.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${dep.mockito.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<defaultGoal>clean verify</defaultGoal>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${dep.plugin.maven-resources.version}</version>
<configuration>
<useDefaultDelimiters>false</useDefaultDelimiters>
<delimiters>
<delimiter>@</delimiter>
</delimiters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${dep.plugin.maven-compiler.version}</version>
<configuration>
<release>${releaseJavaVersion}</release>
<debug>true</debug>
<debuglevel>lines,vars,source</debuglevel>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<compilerArgs>
<arg>-Xlint:all</arg>
<arg>-Xlint:-processing</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${dep.plugin.checkstyle.version}</version>
<configuration>
<failOnViolation>true</failOnViolation>
<configLocation>${project.rootDirectory}/build/checkstyle-rules.xml</configLocation>
<consoleOutput>true</consoleOutput>
<includeTestSourceDirectory>true</includeTestSourceDirectory>
<logViolationsToConsole>true</logViolationsToConsole>
<violationSeverity>warning</violationSeverity>
</configuration>
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${dep.checkstyle.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle-check</id>
<goals>
<goal>check</goal>
</goals>
<phase>test-compile</phase>
<!-- fail before lengthy test execution -->
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${dep.plugin.maven-surefire.version}</version>
<configuration>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${dep.plugin.maven-failsafe.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${dep.plugin.maven-jar.version}</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
<compress>true</compress>
<index>false</index>
<manifest>
<addClasspath>false</addClasspath>
<addDefaultEntries>true</addDefaultEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- Implementation-Title/Version/Vendor -->
<addDefaultSpecificationEntries>false</addDefaultSpecificationEntries>
<addBuildEnvironmentEntries>true</addBuildEnvironmentEntries> <!-- Build-Jdk, Build-Os, Build-Tool -->
</manifest>
<manifestEntries>
<Build-Time>${maven.build.timestamp}</Build-Time>
<Project-Java-Version>${releaseJavaVersion}</Project-Java-Version>
<Project-Url>${project.url}</Project-Url>
<Project-Inception-Year>${project.inceptionYear}</Project-Inception-Year>
<Creation-User>${developerId} (${developerName})</Creation-User>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${dep.plugin.maven-source.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${dep.plugin.maven-javadoc.version}</version>
<configuration>
<quiet>true</quiet>
<doclint>all,-missing</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${dep.plugin.maven-enforcer.version}</version>
<executions>
<execution>
<id>enforce</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>[3.9.0,)</version>
</requireMavenVersion>
<requireJavaVersion>
<version>[${buildJavaVersion},)</version>
</requireJavaVersion>
<requirePluginVersions>
<message>Best practice is to always define Maven plugin versions</message>
<banTimestamps>true</banTimestamps>
<unCheckedPluginList>
org.apache.maven.plugins:maven-clean-plugin,
org.apache.maven.plugins:maven-dependency-plugin,
org.apache.maven.plugins:maven-deploy-plugin,
org.apache.maven.plugins:maven-install-plugin,
org.apache.maven.plugins:maven-site-plugin
</unCheckedPluginList>
</requirePluginVersions>
<requireNoRepositories>
<allowSnapshotRepositories>true</allowSnapshotRepositories>
</requireNoRepositories>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${dep.plugin.maven-release.version}</version>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<pushChanges>false</pushChanges>
<localCheckout>true</localCheckout>
<preparationGoals>clean verify</preparationGoals>
<useReleaseProfile>false</useReleaseProfile>
<goals>deploy</goals>
<releaseProfiles>release</releaseProfiles>
<scmReleaseCommitComment>chore(release): prepare release @{releaseLabel}</scmReleaseCommitComment>
<scmDevelopmentCommitComment>chore(release): prepare for next development iteration</scmDevelopmentCommitComment>
<scmBranchCommitComment>chore(release): branch @{releaseLabel}</scmBranchCommitComment>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${dep.plugin.maven-plugin-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>${dep.plugin.maven-invoker.version}</version>
</plugin>
<plugin>
<!-- mvn com.github.ekryd.sortpom:sortpom-maven-plugin:sort -->
<groupId>com.github.ekryd.sortpom</groupId>
<artifactId>sortpom-maven-plugin</artifactId>
<version>${dep.plugin.sortpom.version}</version>
<configuration>
<createBackupFile>false</createBackupFile>
<expandEmptyElements>false</expandEmptyElements>
<keepBlankLines>true</keepBlankLines>
<lineSeparator>\n</lineSeparator>
<nrOfIndentSpace>4</nrOfIndentSpace>
<sortModules>false</sortModules>
<sortDependencies>none</sortDependencies>
<sortProperties>false</sortProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${dep.plugin.versions.version}</version>
<configuration>
<ruleSet>
<ignoreVersions>
<ignoreVersion>
<type>regex</type>
<version>.*(?i)(alpha|beta|rc|cr|preview|milestone|[mb][0-9]+).*</version>
</ignoreVersion>
</ignoreVersions>
</ruleSet>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<!--
Plugins active for ALL sub-modules.
Plugins that are sub-module-specific (e.g. exec, cyclonedx) are activated
only in the respective sub-module POM.
-->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
<profiles>
<!--
activates ONLY when building the root parent directly
(where project.rootDirectory is not set by the reactor)
-->
<profile>
<id>is-root-parent</id>
<activation>
<file>
<exists>build/checkstyle-rules.xml</exists>
</file>
</activation>
<properties>
<!-- inside the root parent, basedir IS the root directory -->
<project.rootDirectory>${project.basedir}</project.rootDirectory>
</properties>
</profile>
<profile>
<id>fast</id>
<!-- profile to skip time-consuming steps -->
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<!-- skip _compiling_ the tests -->
<maven.test.skip>true</maven.test.skip>
<!-- skip execution of tests -->
<skipTests>true</skipTests>
<maven.javadoc.skip>true</maven.javadoc.skip>
<basepom.check.skip-extended>true</basepom.check.skip-extended>
</properties>
</profile>
<!-- profile to fail the build on Error Prone findings, active by default.
To disable: mvn clean compile -D check.skip-errorprone=true
see: https://errorprone.info/ -->
<profile>
<id>errorprone-fatal</id>
<activation>
<property>
<name>!check.skip-errorprone</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<fork>true</fork>
<compilerArgs combine.children="append">
<arg>-Werror</arg>
<arg>-XDcompilePolicy=simple</arg>
<arg>-XDaddTypeAnnotationsToSymbol=true</arg>
<arg>--should-stop=ifError=FLOW</arg>
<arg>-Xplugin:ErrorProne -Xep:MissingSummary:WARN -Xep:InvalidBlockTag:WARN</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
<arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
<arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
</compilerArgs>
<annotationProcessorPaths>
<path>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>${dep.plugin.error-prone.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${dep.plugin.error-prone.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
<profile>
<!-- Activated for release:prepare and release:perform goals -->
<id>release</id>
<properties>
<!-- Tests have already been run in the release:prepare step; skip here
to avoid re-running them during release:perform
Note: failIfNoTests in Surefire has no effect when skipTests=true
because Surefire does not execute at all -->
<skipTests>true</skipTests>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${dep.plugin.maven-gpg.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- central-publishing-maven-plugin is the official tool for publishing artifacts to the new Sonatype Central Portal
https://central.sonatype.org/publish/publish-portal-maven -->
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${dep.plugin.central-publishing.version}</version>
<!-- The <extensions>true</extensions> attribute tells Maven to include the plugin's code in the build lifecycle,
allowing it to hook into specific phases and extend Maven's default behavior.
This lets the plugin take over the standard deploy goal and implement its own logic for deploying to the new Sonatype Central Portal. -->
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>false</autoPublish>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>