Maven: возможно ли указать другую версию одного и того же плагина для нескольких профилей, одновременно активируя все эти профили одновременно? - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть проект 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>

1 Ответ

2 голосов
/ 21 апреля 2020

Нет, в сборке может быть только одна версия плагина.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...