112 lines
4.4 KiB
XML
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<T> 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> |