113 lines
4.8 KiB
XML
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.
|
|
<p>Scans all compiled classes extending <code>AbstractResource</code>, reads JAX-RS annotations and <code>RestResponse&lt;T&gt;</code> return types via reflection, then writes into the frontend:</p>
|
|
<ul>
|
|
<li><code>httpClient.ts</code> — shared fetch helpers</li>
|
|
<li><code>{Entity</code>Do.ts} — one interface per domain entity</li>
|
|
<li><code>{Name</code>.ts} — union type per enum</li>
|
|
<li><code>{Resource</code>Client.ts} — one client file per JAX-RS resource</li>
|
|
<li><code>hooks.ts</code> — TanStack Query hooks</li>
|
|
</ul></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> |