graph-compose
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose</artifactId>
<version>2.1.1</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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--
The `graph-compose` coordinate as a back-compat aggregator. In the 2.0
module split the engine code moved to graph-compose-core; this empty jar
keeps the original `graph-compose` coordinate working as a drop-in for
existing consumers by depending on graph-compose-core. As render backends
are extracted it also depends on graph-compose-render-pdf, so a bare
`graph-compose` dependency keeps rendering PDF exactly as in 1.x — classes
arrive transitively from core, the PDF backend provider from render-pdf.
Packaging is `jar` (an empty one), NOT `pom`: a `pom` would force every
existing consumer to add `<type>pom</type>` and break their build. A jar
that carries only <dependencies> resolves as a normal artifact.
Standalone pom (no aggregator parent, like fonts/render-docx/testing);
its version tracks the engine line in lockstep.
-->
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose</artifactId>
<version>2.1.1</version>
<name>GraphCompose</name>
<description>The graph-compose coordinate: a drop-in aggregator over graph-compose-core for a PDF-capable install.</description>
<url>https://github.com/DemchaAV/GraphCompose</url>
<licenses>
<license>
<name>MIT License</name>
<url>https://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>DemchaAV</id>
<name>Artem Demchyshyn</name>
<email>demchishynartem@gmail.com</email>
<url>https://github.com/DemchaAV</url>
<roles>
<role>Lead Developer</role>
<role>Architect</role>
</roles>
<timezone>UTC 0</timezone>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/DemchaAV/GraphCompose.git</connection>
<developerConnection>scm:git:ssh://git@github.com/DemchaAV/GraphCompose.git</developerConnection>
<url>https://github.com/DemchaAV/GraphCompose/tree/main</url>
</scm>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>17</maven.compiler.release>
<maven.compiler.plugin.version>3.15.0</maven.compiler.plugin.version>
<maven.jar.plugin.version>3.5.1</maven.jar.plugin.version>
<maven.source.plugin.version>3.4.0</maven.source.plugin.version>
<maven.javadoc.plugin.version>3.12.0</maven.javadoc.plugin.version>
<maven.gpg.plugin.version>3.2.8</maven.gpg.plugin.version>
<!-- Only ever fed to the javadoc plugin below: the engine's sources are
annotated with Lombok, which is provided-scope there and so never
reaches this module transitively. Kept in lockstep with the engine pom
by VersionConsistencyGuardTest. -->
<lombok.version>1.18.46</lombok.version>
<central.publishing.plugin.version>0.11.0</central.publishing.plugin.version>
<!-- See the engine pom: opted in via -Dgpg.skip=false on the publish workflow. -->
<gpg.skip>true</gpg.skip>
</properties>
<dependencies>
<!-- The engine plus the default PDF backend: a bare `graph-compose`
dependency brings the core transitively and puts the PDF backend
provider on the classpath, so buildPdf() / toImages() render as in 1.x. -->
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>io.github.demchaav</groupId>
<artifactId>graph-compose-render-pdf</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<release>${maven.compiler.release}</release>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven.jar.plugin.version}</version>
</plugin>
</plugins>
</build>
<profiles>
<!-- Maven Central release artefacts — mirrors the engine pom's `release`
profile.
This module carries no sources of its own, so `jar-no-fork` and the
javadoc `jar` goal both find nothing to archive and attach NOTHING —
they do not produce empty jars, they produce no artifact at all. Every
2.x release of this coordinate therefore shipped without a -javadoc.jar
or a -sources.jar, and javadoc.io, which serves the newest version that
carries one, kept rendering 1.9.1 for the coordinate the README sends
readers to.
The javadoc jar is built from the engine's sources instead. That is the
surface a `graph-compose` consumer authors against, and it means the
hosted API reference advances with each release on its own rather than
waiting for anyone to notice. render-pdf is deliberately left out: it is
the backend the wrapper carries, not the API the caller writes.
The sources jar stays absent — there are none to publish, and Central
accepts the coordinate without it. -->
<profile>
<id>release</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven.source.plugin.version}</version>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven.javadoc.plugin.version}</version>
<executions>
<execution>
<id>attach-javadocs</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<!-- The wrapper has no sources; without this the
goal archives nothing and the release ships
no javadoc artifact at all. -->
<includeDependencySources>true</includeDependencySources>
<dependencySourceIncludes>
<dependencySourceInclude>io.github.demchaav:graph-compose-core</dependencySourceInclude>
</dependencySourceIncludes>
<!-- The engine's sources are Lombok-annotated and
Lombok is provided-scope there, so it never
arrives here transitively. Without it javadoc
stops at "package lombok does not exist". -->
<additionalDependencies>
<additionalDependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</additionalDependency>
</additionalDependencies>
<!-- Doc-style lint is the engine's own business —
its release profile turns it off for the same
reason. failOnError is left at its default of
true on purpose, unlike the engine's: a hard
failure here means the aggregation broke, and
swallowing it is what shipped a coordinate
with no javadoc for two releases running. -->
<doclint>none</doclint>
<quiet>true</quiet>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven.gpg.plugin.version}</version>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<skip>${gpg.skip}</skip>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${central.publishing.plugin.version}</version>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>false</autoPublish>
<waitUntil>validated</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>