У меня есть проект Maven, в котором я создал несколько определений API с помощью Swagger. Используя openapi-generator-maven-plugin
, я генерирую код JAVA и код TypeScript для использования API.
В моей конфигурации pom.xml
я определил профиль Maven для каждого языка. Дело в том, что я хотел бы использовать версию 4.2.0 этого плагина при генерации кода JAVA и версию 4.3.0 при генерации кода TypeScript: я использовал версию 4.2.0 в обоих профилях, но некоторые новые функции появились в версии 4.3 .0 для генерации TypeScript, и после некоторых тестов я обнаружил, что есть некоторые побочные эффекты, которых я бы хотел избежать при генерации JAVA.
Когда каждый профиль активируется сам по себе, все работает как ожидается. Но если я активирую оба профиля, Maven использует самую последнюю версию плагина: 4.3.0.
Поскольку мой проект Maven будет построен на сервере CI / CD, я был Интересно, можно ли было использовать указанную c версию того же самого плагина maven на основе профиля во время одной сборки, или мне нужно создать отдельную сборку для каждого профиля?
My pom.xml
выглядит так:
<profiles>
<profile>
<id>java</id>
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.2.0</version>
<executions>
<execution>
<id>generate-api-java-model</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>typescript</id>
<build>
<plugins>
<plugin>
<groupId>org.openapitools</groupId>
<artifactId>openapi-generator-maven-plugin</artifactId>
<version>4.3.0</version>
<executions>
<execution>
<id>generate-api-ts-model</id>
<goals>
<goal>generate</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
...
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>