Как избежать дублирования профиля maven

У меня есть проект Maven для веб-приложения, которое перепаковывает военную зависимость, используя оверлеи. Для двух профилей, test и prod, он должен исключать файл demo.jsp, но для других, например локальных, этот файл должен остаться. Есть ли способ иметь только одну конфигурацию для двух профилей? Я не хочу повторять одну конфигурацию для двух профилей. Мое текущее решение:

<profiles>
    <profile>
        <id>test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <overlays>
                            <overlay>
                                <groupId>mygroup</groupId>
                                <artifactId>mywebapp</artifactId>
                                <excludes>
                                    <exclude>demo.jsp</exclude>
                                </excludes>
                            </overlay>
                        </overlays>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.3</version>
                    <configuration>
                        <overlays>
                            <overlay>
                                <groupId>mygroup</groupId>
                                <artifactId>mywebapp</artifactId>
                                <excludes>
                                    <exclude>demo.jsp</exclude>
                                </excludes>
                            </overlay>
                        </overlays>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

РЕДАКТИРОВАТЬ: профили тестирования и продукта идентичны

1 ответ

Управление плагинов может помочь нам в следующем:-

<build>
    <pluginManagement>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.3</version>
            <configuration>
                <overlays>
                    <overlay>
                        <groupId>mygroup</groupId>
                        <artifactId>mywebapp</artifactId>
                        <excludes>
                            <exclude>demo.jsp</exclude>
                        </excludes>
                    </overlay>
                </overlays>
            </configuration>
        </plugin>
    </pluginManagement>
</build>

Тогда profiles должно быть следующим:

<profiles>
    <profile>
        <id>test</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        ...
    </profile>
    <profile>
        <id>prod</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
        ...
    </profile>
</profiles>    

Я надеюсь, что это может помочь.

Другие вопросы по тегам