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

113 lines
4.8 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by maven-plugin-tools 3.15 (enhanced XHTML version (used for plugin:report))-->
<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.
&lt;p&gt;Scans all compiled classes extending &lt;code&gt;AbstractResource&lt;/code&gt;, reads JAX-RS annotations and &lt;code&gt;RestResponse&amp;lt;T&amp;gt;&lt;/code&gt; return types via reflection, then writes into the frontend:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;httpClient.ts&lt;/code&gt; — shared fetch helpers&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{Entity&lt;/code&gt;Do.ts} — one interface per domain entity&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{Name&lt;/code&gt;.ts} — union type per enum&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{Resource&lt;/code&gt;Client.ts} — one client file per JAX-RS resource&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hooks.ts&lt;/code&gt; — TanStack Query hooks&lt;/li&gt;
&lt;/ul&gt;</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>