UI based JUDO React Frontend TypeScript generator
The source code which this template can generate depends on the generated services of judo-ui-typescript-rest-template.
The following example will showcase both plugins working together to generate a fully functional application.
<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>
<groupId>com.example</groupId>
<artifactId>actiongrouptest-frontend-react-action_group_test__god</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>ActionGroupTest - God</name>
<description>ActionGroupTest - God react frontend</description>
<packaging>bundle</packaging>
<properties>
<!-- dependencies -->
<judo-meta-ui-version>1.0.1.20230213_193724_b9e98a1c_develop</judo-meta-ui-version>
<judo-generator-commons-version>1.0.0.20230120_203628_b0fbaa8e_develop</judo-generator-commons-version>
<judo-ui-typescript-rest-template-version>1.0.0.20230227_135344_7ab7117b_develop</judo-ui-typescript-rest-template-version>
<judo-ui-react-version>1.0.0.20230222_040743_a6270e05_develop</judo-ui-react-version>
<!-- model properties -->
<model-name>ActionGroupTest</model-name>
<actor>actiongrouptest__god</actor>
<actor-shortname>god</actor-shortname>
<actor-name>God</actor-name>
<actor-fq-name>ActionGroupTest::God</actor-fq-name>
<!-- generator properties -->
<ui-model>${project.basedir}/model/${model-name}-ui.model</ui-model>
<override-dir>${project.basedir}/generator-overrides</override-dir>
<generation-target>${project.basedir}/target/frontend-react</generation-target>
<!-- npm package properties -->
<appScope>@example</appScope>
<appVersion>1.0.0</appVersion>
<tablePageLimit>10</tablePageLimit>
</properties>
<build>
<plugins>
<plugin>
<groupId>hu.blackbelt.judo.meta</groupId>
<artifactId>judo-ui-generator-maven-plugin</artifactId>
<version>${judo-meta-ui-version}</version>
<executions>
<execution>
<id>execute-ui-services-generation</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<uris>
<uri>mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-api:${judo-ui-typescript-rest-template-version}</uri>
<uri>mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-service:${judo-ui-typescript-rest-template-version}</uri>
<uri>mvn:hu.blackbelt.judo.generator:judo-ui-typescript-rest-axios:${judo-ui-typescript-rest-template-version}</uri>
</uris>
<type>ui-typescript-rest</type>
<applications>
${actor-fq-name}
</applications>
<ui>${ui-model}</ui>
<destination>${generation-target}/src/generated</destination>
</configuration>
</execution>
<execution>
<id>execute-ui-generation</id>
<phase>generate-sources</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<uris>
<uri>mvn:hu.blackbelt.judo.generator:judo-ui-react:${judo-ui-react-version}</uri>
</uris>
<type>ui-react</type>
<applications>
${actor-fq-name}
</applications>
<ui>${ui-model}</ui>
<destination>${generation-target}</destination>
<templateParameters>
<appModelName>${model-name}</appModelName>
<appScope>${appScope}</appScope>
<appVersion>${appVersion}</appVersion>
<tablePageLimit>10</tablePageLimit>
</templateParameters>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-typescript-rest-commons</artifactId>
<version>${judo-ui-typescript-rest-template-version}</version>
</dependency>
<dependency>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-typescript-rest-api</artifactId>
<version>${judo-ui-typescript-rest-template-version}</version>
</dependency>
<dependency>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-typescript-rest-service</artifactId>
<version>${judo-ui-typescript-rest-template-version}</version>
</dependency>
<dependency>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-typescript-rest-axios</artifactId>
<version>${judo-ui-typescript-rest-template-version}</version>
</dependency>
<dependency>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-react</artifactId>
<version>${judo-ui-react-version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.3.0</version>
<executions>
<execution>
<id>external-packages</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-react-external-packages</artifactId>
<version>${judo-ui-react-version}</version>
<type>jar</type>
<overWrite>true</overWrite>
</artifactItem>
</artifactItems>
<includes>externals/**</includes>
<outputDirectory>${generation-target}</outputDirectory>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>hu.blackbelt.judo.generator</groupId>
<artifactId>judo-ui-react-external-packages</artifactId>
<version>${judo-ui-react-version}</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
This example generates a complete application into the target/frontend-react directory.
The judo-ui-generator-maven-plugin documentation is placed inside
the plugin documentation itself. https://github.com/BlackBeltTechnology/judo-meta-ui/tree/develop/generator-maven-plugin
Detailed documentation for the generated apps and how to maintain / modify them can be found under docs/pages folder.