Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

To produce TypeScript definitions using Maven from Kotlin DTO, you can use the kotlin2typescript-maven-plugin.

Here are the steps:

  1. Add the plugin to your pom.xml file:
<build>
  <plugins>
    <plugin>
      <groupId>com.github.d3adspace.kotlin</groupId>
      <artifactId>kotlin2typescript-maven-plugin</artifactId>
      <version>2.5.8</version>
      <executions>
        <execution>
          <id>generate-typescript</id>
          <goals>
            <goal>generate</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>
  1. Add the DTO classes to be generated as TypeScript definitions:
<dependencies>
  <dependency>
    <groupId>com.example</groupId>
    <artifactId>my-dto</artifactId>
    <version>1.0.0</version>
  </dependency>
</dependencies>
  1. Configure the plugin in the configuration section of the plugin:
<plugin>
  <groupId>com.github.d3adspace.kotlin</groupId>
  <artifactId>kotlin2typescript-maven-plugin</artifactId>
  <version>2.5.8</version>
  <executions>
    <execution>
      <id>generate-typescript</id>
      <goals>
        <goal>generate</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <dtoPackages>
      <param>com.example.mydto</param>
    </dtoPackages>
    <generatedSourcesTargetPath>src/main/webapp/ts</generatedSourcesTargetPath>
  </configuration>
</plugin>
  1. Run the Maven build:
mvn clean install

This will generate the TypeScript definitions in the src/main/webapp/ts directory.

Note: The kotlin2typescript-maven-plugin also supports generating Enum classes as TypeScript enums. You can configure this in the configuration section of the plugin by setting the enumPackages parameter with packages that contain your Enum classes.