forked from loafle/openapi-generator-original
* [maven] Fallback to templates using classpath rather than OS-specific paths Previous checks would cause logic in Windows to return early, for built-in templates only. This reorganizes and simplifies the ordering behavior. * Match classpath check in WorkflowSettings with that in TemplateManager * [maven] Much needed unit/integration tests This follows similar approach used in PMD and other plugins managed by maven. Unit tests simply verify we can load configuration as expected into the Mojo. Integration tests execute actual sample projects bound to the current build's Maven plugin. This uses maven-invoker-plugin, which also allows for specifying the maven options in invoker.properties to execute the test. It also provides a verification framework using groovy files with the required naming convention of "verify.groovy". This allows us to quickly and easily check that certain files are outputted by generation, and we may also spotcheck file contents. templateResourcePath option is skipped on windows. I've tested back to version 3.3.3 and this doesn't seem to have worked consistently with how the property works on non-Windows. * Set groovy 3.0.5 for test harness * Print stacktrace on Maven error in Travis * [maven] Set groovy version in tests to supported in Java 11+ * Puts maven integration tests in separate profile called 'integration'
195 lines
8.2 KiB
XML
195 lines
8.2 KiB
XML
<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 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
<modelVersion>4.0.0</modelVersion>
|
|
<groupId>org.openapitools</groupId>
|
|
<artifactId>sample-project</artifactId>
|
|
<packaging>jar</packaging>
|
|
<version>1.0-SNAPSHOT</version>
|
|
<name>sample-project</name>
|
|
<url>https://maven.apache.org</url>
|
|
<build>
|
|
<plugins>
|
|
<!-- activate the plugin -->
|
|
<plugin>
|
|
<groupId>org.openapitools</groupId>
|
|
<artifactId>openapi-generator-maven-plugin</artifactId>
|
|
<!-- RELEASE_VERSION -->
|
|
<version>5.0.0-SNAPSHOT</version>
|
|
<!-- /RELEASE_VERSION -->
|
|
<executions>
|
|
<execution>
|
|
<id>default</id>
|
|
<goals>
|
|
<goal>generate</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- specify the swagger yaml -->
|
|
<inputSpec>${project.basedir}/swagger.yaml</inputSpec>
|
|
|
|
<!-- target to generate java client code -->
|
|
<generatorName>java</generatorName>
|
|
|
|
<!-- hint: if you want to generate java server code, e.g. based on Spring Boot,
|
|
you can use the following target: <generatorName>spring</generatorName> -->
|
|
|
|
<!-- pass any necessary config options -->
|
|
<configOptions>
|
|
<dateLibrary>joda</dateLibrary>
|
|
</configOptions>
|
|
|
|
<!-- override the default library to jersey2 -->
|
|
<library>jersey2</library>
|
|
</configuration>
|
|
</execution>
|
|
<execution>
|
|
<id>remote</id>
|
|
<phase>generate-sources</phase>
|
|
<goals>
|
|
<goal>generate</goal>
|
|
</goals>
|
|
<configuration>
|
|
<!-- specify the swagger yaml -->
|
|
<inputSpec>https://raw.githubusercontent.com/OpenAPITools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml</inputSpec>
|
|
|
|
<!-- target to generate java client code -->
|
|
<generatorName>java</generatorName>
|
|
|
|
<templateDirectory>${project.basedir}/templates</templateDirectory>
|
|
|
|
<!-- pass any necessary config options -->
|
|
<configOptions>
|
|
<dateLibrary>joda</dateLibrary>
|
|
</configOptions>
|
|
|
|
<!-- override the default library to jersey2 -->
|
|
<library>jersey2</library>
|
|
|
|
<output>${project.build.directory}/generated-sources/remote-openapi</output>
|
|
<apiPackage>remote.org.openapitools.client.api</apiPackage>
|
|
<modelPackage>remote.org.openapitools.client.model</modelPackage>
|
|
<invokerPackage>remote.org.openapitools.client</invokerPackage>
|
|
</configuration>
|
|
</execution>
|
|
</executions>
|
|
</plugin>
|
|
<plugin>
|
|
<groupId>org.apache.maven.plugins</groupId>
|
|
<artifactId>maven-compiler-plugin</artifactId>
|
|
<version>3.8.1</version>
|
|
<configuration>
|
|
<source>1.7</source>
|
|
<target>1.7</target>
|
|
<proc>none</proc>
|
|
</configuration>
|
|
</plugin>
|
|
</plugins>
|
|
</build>
|
|
<pluginRepositories>
|
|
<pluginRepository>
|
|
<id>sonatype-snapshots</id>
|
|
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
|
</pluginRepository>
|
|
</pluginRepositories>
|
|
<dependencies>
|
|
<!-- dependencies are needed for the client being generated -->
|
|
|
|
<dependency>
|
|
<groupId>io.swagger</groupId>
|
|
<artifactId>swagger-annotations</artifactId>
|
|
<version>${swagger-annotations-version}</version>
|
|
</dependency>
|
|
|
|
<!-- You can find the dependencies for the library configuration you chose by looking in JavaClientCodegen.
|
|
Then find the corresponding dependency on Maven Central, and set the versions in the property section below -->
|
|
|
|
<!-- HTTP client: jersey-client -->
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.core</groupId>
|
|
<artifactId>jersey-client</artifactId>
|
|
<version>${jersey-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.media</groupId>
|
|
<artifactId>jersey-media-multipart</artifactId>
|
|
<version>${jersey-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.glassfish.jersey.media</groupId>
|
|
<artifactId>jersey-media-json-jackson</artifactId>
|
|
<version>${jersey-version}</version>
|
|
</dependency>
|
|
|
|
<!-- @Nullable annotation -->
|
|
<dependency>
|
|
<groupId>com.google.code.findbugs</groupId>
|
|
<artifactId>jsr305</artifactId>
|
|
<version>3.0.2</version>
|
|
</dependency>
|
|
|
|
<!-- JSON processing: jackson -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
|
<artifactId>jackson-jaxrs-base</artifactId>
|
|
<version>${jackson-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-core</artifactId>
|
|
<version>${jackson-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-annotations</artifactId>
|
|
<version>${jackson-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.core</groupId>
|
|
<artifactId>jackson-databind</artifactId>
|
|
<version>${jackson-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.jaxrs</groupId>
|
|
<artifactId>jackson-jaxrs-json-provider</artifactId>
|
|
<version>${jackson-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>org.openapitools</groupId>
|
|
<artifactId>jackson-databind-nullable</artifactId>
|
|
<version>${jackson-databind-nullable-version}</version>
|
|
</dependency>
|
|
|
|
<!-- Joda time: if you use it -->
|
|
<dependency>
|
|
<groupId>com.fasterxml.jackson.datatype</groupId>
|
|
<artifactId>jackson-datatype-joda</artifactId>
|
|
<version>${jackson-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>joda-time</groupId>
|
|
<artifactId>joda-time</artifactId>
|
|
<version>${jodatime-version}</version>
|
|
</dependency>
|
|
<dependency>
|
|
<groupId>com.github.scribejava</groupId>
|
|
<artifactId>scribejava-apis</artifactId>
|
|
<version>${scribejava-apis-version}</version>
|
|
</dependency>
|
|
<!-- Base64 encoding that works in both JVM and Android -->
|
|
<dependency>
|
|
<groupId>com.brsanthu</groupId>
|
|
<artifactId>migbase64</artifactId>
|
|
<version>2.2</version>
|
|
</dependency>
|
|
</dependencies>
|
|
|
|
<properties>
|
|
<swagger-annotations-version>1.5.8</swagger-annotations-version>
|
|
<jersey-version>2.27</jersey-version>
|
|
<jackson-version>2.9.10</jackson-version>
|
|
<jackson-databind-nullable-version>0.2.0</jackson-databind-nullable-version>
|
|
<jodatime-version>2.7</jodatime-version>
|
|
<maven-plugin-version>1.0.0</maven-plugin-version>
|
|
<junit-version>4.8.1</junit-version>
|
|
<scribejava-apis-version>6.9.0</scribejava-apis-version>
|
|
</properties>
|
|
</project>
|