Files
peakup/peakup-maven/target/classes/META-INF/maven/plugin.xml
2026-04-06 10:22:11 +02:00

112 lines
4.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by maven-plugin-tools 3.15-->
<plugin>
<name>peakup-maven</name>
<description></description>
<groupId>com.peakup</groupId>
<artifactId>peakup-maven</artifactId>
<version>1.0-SNAPSHOT</version>
<goalPrefix>peakup</goalPrefix>
<isolatedRealm>false</isolatedRealm>
<inheritedByDefault>true</inheritedByDefault>
<requiredJavaVersion>21</requiredJavaVersion>
<requiredMavenVersion>3.9.9</requiredMavenVersion>
<mojos>
<mojo>
<goal>generate-package-info</goal>
<description>Generates package-info.java files with the @NonNull annotation for all packages that contain Java source files.</description>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>generate-sources</phase>
<implementation>com.peakup.maven.PackageInfoGeneratorMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>true</threadSafe>
<parameters>
<parameter>
<name>sourceDirectory</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description></description>
</parameter>
</parameters>
<configuration>
<sourceDirectory implementation="java.io.File" default-value="${project.build.sourceDirectory}"/>
</configuration>
</mojo>
<mojo>
<goal>generate-typescript</goal>
<description>Generates TypeScript REST client and entity types from peakup-backend REST resources.
Scans all compiled classes extending AbstractResource, reads JAX-RS annotations and RestResponse&lt;T&gt; return types via reflection, then writes into the frontend:
* httpClient.ts — shared fetch helpers
* {EntityDo.ts} — one interface per domain entity
* {Name.ts} — union type per enum
* {ResourceClient.ts} — one client file per JAX-RS resource
* hooks.ts — TanStack Query hooks </description>
<requiresDependencyResolution>compile</requiresDependencyResolution>
<requiresDirectInvocation>false</requiresDirectInvocation>
<requiresProject>true</requiresProject>
<requiresReports>false</requiresReports>
<aggregator>false</aggregator>
<requiresOnline>false</requiresOnline>
<inheritedByDefault>true</inheritedByDefault>
<phase>process-classes</phase>
<implementation>com.peakup.maven.TypeScriptClientGeneratorMojo</implementation>
<language>java</language>
<instantiationStrategy>per-lookup</instantiationStrategy>
<executionStrategy>once-per-session</executionStrategy>
<threadSafe>true</threadSafe>
<parameters>
<parameter>
<name>outputDirApi</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description></description>
</parameter>
<parameter>
<name>outputDirTypes</name>
<type>java.io.File</type>
<required>true</required>
<editable>true</editable>
<description></description>
</parameter>
<parameter>
<name>project</name>
<type>org.apache.maven.project.MavenProject</type>
<required>true</required>
<editable>false</editable>
<description></description>
</parameter>
</parameters>
<configuration>
<outputDirApi implementation="java.io.File" default-value="${project.basedir}/../peakup-frontend/src/api"/>
<outputDirTypes implementation="java.io.File" default-value="${project.basedir}/../peakup-frontend/src/types"/>
<project implementation="org.apache.maven.project.MavenProject" default-value="${project}"/>
</configuration>
</mojo>
</mojos>
<dependencies>
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<type>jar</type>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<type>jar</type>
<version>2.18.3</version>
</dependency>
</dependencies>
</plugin>