openapi-generics-java-codegen-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>io.github.blueprint-platform</groupId>
<artifactId>openapi-generics-java-codegen-parent</artifactId>
<version>1.0.3</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>
<parent>
<groupId>io.github.blueprint-platform</groupId>
<artifactId>openapi-generics</artifactId>
<version>1.0.3</version>
</parent>
<artifactId>openapi-generics-java-codegen-parent</artifactId>
<packaging>pom</packaging>
<name>openapi-generics-java-codegen-parent</name>
<description>
Parent POM for contract-aware Java client generation.
Orchestrates OpenAPI Generator template extraction, patching, overlay, execution, and generated source registration.
</description>
<properties>
<openapi-generator.version>7.23.0</openapi-generator.version>
<maven.resources.plugin.version>3.5.0</maven.resources.plugin.version>
<maven-antrun-plugin.version>3.2.0</maven-antrun-plugin.version>
<build.helper.plugin.version>3.6.1</build.helper.plugin.version>
<openapi.templates.effective>${project.build.directory}/effective-templates</openapi.templates.effective>
<openapi.generator.output>${project.build.directory}/generated-sources/openapi</openapi.generator.output>
<openapi.generator.sourceFolder>src/gen/java</openapi.generator.sourceFolder>
<openapi.generated.sources>${openapi.generator.output}/${openapi.generator.sourceFolder}</openapi.generated.sources>
<openapi.templates.codegen>${project.build.directory}/codegen-templates</openapi.templates.codegen>
<openapi.generics.skip>false</openapi.generics.skip>
</properties>
<dependencies>
<dependency>
<groupId>io.github.blueprint-platform</groupId>
<artifactId>openapi-generics-contract</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.github.blueprint-platform</groupId>
<artifactId>openapi-generics-platform-bom</artifactId>
<version>${openapi-generics.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>extract-openapi-model-template</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<skip>${openapi.generics.skip}</skip>
<artifactItems>
<artifactItem>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator</artifactId>
<version>${openapi-generator.version}</version>
<type>jar</type>
<overWrite>true</overWrite>
<includes>**/Java/model.mustache</includes>
<outputDirectory>${openapi.templates.effective}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
<execution>
<id>extract-codegen-templates</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<skip>${openapi.generics.skip}</skip>
<artifactItems>
<artifactItem>
<groupId>io.github.blueprint-platform</groupId>
<artifactId>openapi-generics-java-codegen</artifactId>
<version>${openapi-generics.version}</version>
<includes>META-INF/openapi-generics/templates/**</includes>
<outputDirectory>${openapi.templates.codegen}</outputDirectory>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven-antrun-plugin.version}</version>
<executions>
<execution>
<id>ensure-template-dir</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<target>
<mkdir dir="${openapi.templates.effective}/Java"/>
</target>
</configuration>
</execution>
<execution>
<id>patch-openapi-model-template</id>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<skip>${openapi.generics.skip}</skip>
<target>
<replaceregexp
byline="false"
flags="s"
file="${openapi.templates.effective}/Java/model.mustache"
match="\{\{#models\}\}\s*\{\{#model\}\}\s*\{\{#isEnum\}\}"
replace="{{#models}}{{#model}}{{#vendorExtensions.x-api-wrapper}}{{>api_wrapper}}{{/vendorExtensions.x-api-wrapper}}{{^vendorExtensions.x-api-wrapper}}{{#isEnum}}"/>
<replaceregexp
byline="false"
flags="s"
file="${openapi.templates.effective}/Java/model.mustache"
match="\{\{\/isEnum\}\}\s*\{\{\/model\}\}\s*\{\{\/models\}\}"
replace="{{/isEnum}}{{/vendorExtensions.x-api-wrapper}}{{/model}}{{/models}}"/>
<loadfile property="patchedModelTemplate"
srcFile="${openapi.templates.effective}/Java/model.mustache"/>
<condition property="wrapperPatchMissing">
<not>
<contains string="${patchedModelTemplate}"
substring="vendorExtensions.x-api-wrapper"/>
</not>
</condition>
<fail message="OpenAPI template patch FAILED — upstream model.mustache structure changed."
if="wrapperPatchMissing"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven.resources.plugin.version}</version>
<executions>
<execution>
<id>overlay-local-templates</id>
<phase>generate-sources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<skip>${openapi.generics.skip}</skip>
<outputDirectory>${openapi.templates.effective}/Java</outputDirectory>
<resources>
<resource>
<directory>${openapi.templates.codegen}/META-INF/openapi-generics/templates</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>${openapi-generator.version}</version>
<dependencies>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-core</artifactId>
<version>${openapi-generator.version}</version>
</dependency>
<dependency>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator</artifactId>
<version>${openapi-generator.version}</version>
</dependency>
<dependency>
<groupId>io.github.blueprint-platform</groupId>
<artifactId>openapi-generics-java-codegen</artifactId>
<version>${openapi-generics.version}</version>
</dependency>
</dependencies>
<configuration>
<output>${openapi.generator.output}</output>
<templateDirectory>${openapi.templates.effective}/Java</templateDirectory>
<configOptions>
<sourceFolder>${openapi.generator.sourceFolder}</sourceFolder>
</configOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build.helper.plugin.version}</version>
<executions>
<execution>
<id>add-generated-sources</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>${openapi.generated.sources}</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>flatten-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>