Generera klientkod för SOAP och REST
Exempel på plugin för att generera klient-kod för SOAP- respektive REST-klienter.
SOAP
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxb2-maven-plugin</artifactId>
<version>2.5.0</version>
<!-- Enables fluent builder for generated classes -->
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-fluent-api</artifactId>
<version>3.0</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>xjc</id>
<goals>
<goal>xjc</goal>
</goals>
</execution>
</executions>
<configuration>
<xjbSources>
<!-- Kan behövas om dom genererade klasserna inte annoteras upp
med @XmlRootElement(name = "ClassName") -->
<xjbSource>${basedir}/src/main/resources/contracts/xjb/example.xjb</xjbSource>
</xjbSources>
<!-- Enable fluent -->
<arguments>
<argument>-Xfluent-api</argument>
</arguments>
<outputDirectory>${project.build.directory}/your-sources</outputDirectory>
<sourceType>wsdl</sourceType>
<sources>
<source>${basedir}/src/main/resources/contracts/Example.wsdl</source>
</sources>
</configuration>
</plugin>
example.xjb
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
jaxb:version="2.0"
xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc"
jaxb:extensionBindingPrefixes="xjc">
<jaxb:globalBindings>
<xjc:simple/>
</jaxb:globalBindings>
</jaxb:bindings>
REST
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>5.4.0</version>
<executions>
<execution>
<id>some-id</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<inputSpec>${project.basedir}/src/main/resources/contracts/swagger.json</inputSpec>
<output>${project.build.directory}/your-sources</output>
<generatorName>spring</generatorName>
<generateApis>false</generateApis>
<configOptions>
<apiPackage>somePackage</apiPackage>
<dateLibrary>java8</dateLibrary>
<generateSupportingFiles>false</generateSupportingFiles>
<library>microprofile</library>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
Notera att med generatorName
satt till spring
så genereras klientkod som använder annoteringar för OpenAPI v3.x. För att generera klientkod som använder annoteringar för v2.x bör java
användas.
Problem att IDE:t inte hittar genererad kod
I vissa fall hittar inte IDE:n genererad kod och det kan då behövas konfigureras upp så att katalogen märks upp som en “source-folder”