У меня есть API, написанный на Swagger, для которого я хочу генерировать как реализацию Службы, так и клиента, и они должны быть в отдельных модулях maven.
Я думал о том, чтобы разделить их на 3 отдельных модуля Maven (или подмодули одного и того же родительского модуля).
parent
+- api
+- src/main/resources/api/service.yaml
+- client
+- service
Тогда и в клиенте, и в сервисе я получу swagger-codegen-maven-plugin
.Таким образом, оба будут синхронизированы, и я буду поддерживать сервис только из одного места.Другие клиенты также могут зависеть от артефакта api
и генерировать свой код из определения service.yaml
Swagger API.
Моя сложность заключается в том, как заставить сервис и клиент ссылаться на service.yaml
в другом Maven.Зависимость?
Это то, что у меня в данный момент есть в службе pom.xml
, но это относится к локальным ресурсам модуля службы, а не к зависимости api
maven.
<plugin>
<groupId>io.swagger</groupId>
<artifactId>swagger-codegen-maven-plugin</artifactId>
<version>${io.swagger.codegen.version}</version>
<executions>
<execution>
<id>api</id>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<!-- can this refer to another maven dependency's resources? -->
<inputSpec>${basedir}/src/main/resources/api/service.yaml</inputSpec>
<language>spring</language>
<library>spring-boot</library>
<modelPackage>com.test.model</modelPackage>
<apiPackage>com.test.api</apiPackage>
<generateSupportingFiles>false</generateSupportingFiles>
<configOptions>
<java8>true</java8>
<dateLibrary>java8</dateLibrary>
<interfaceOnly>true</interfaceOnly>
</configOptions>
</configuration>
</execution>
</executions>
</plugin>
Не уверен, что это то, что я должен сделать из Maven, чтобы сослаться на ресурсы из другой зависимости maven, или что-то, что мне нужно сделать в конфигурации плагина swagger.