Распределение профилей пролетного пути по фазам

Я пытаюсь создать отдельные профили, используя flyway-maven-plugin, но определение фазы не работает должным образом. Это означает, что когда я использую оба профиля, у меня возникает ошибка при выполнении, потому что я предполагаю, что «удалить-создать-базу данных», используя конфигурацию из «мигрировать-базу данных», поэтому она не удалась. Кто-нибудь знает, как это исправить?

    <profiles>
    <profile>
        <id>drop-create</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.flywaydb</groupId>
                    <artifactId>flyway-maven-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <driver>net.sourceforge.jtds.jdbc.Driver</driver>
                        <table>MIGRATION_LOG</table>
                        <sqlMigrationPrefix>EMP_</sqlMigrationPrefix>
                        <skip>false</skip>
                    </configuration>
                    <executions>
                        <execution>
                            <id>drop-create-database</id>
                            <!-- Need to garantee order of execution -->
                            <phase>package</phase>
                            <goals>
                                <goal>clean</goal>
                                <goal>migrate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
    <profile>
        <id>migrate</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.flywaydb</groupId>
                    <artifactId>flyway-maven-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <driver>net.sourceforge.jtds.jdbc.Driver</driver>
                        <table>MIGRATION_LOG</table>
                        <sqlMigrationPrefix>ALL_</sqlMigrationPrefix>
                        <skip>false</skip>
                    </configuration>
                    <executions>
                        <execution>
                            <id>migrate-database</id>
                            <phase>pre-integration-test</phase>
                            <goals>
                                <goal>migrate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

person inF    schedule 03.02.2015    source источник
comment
В каком порядке фактически выполняются оба исполнения?   -  person SpaceTrucker    schedule 04.02.2015
comment
Извините, я исправил описание. Не заказывайте догадки, когда я запускаю чистый пакет -Pdrop-create, перенесите его для конфигурации перетаскивания-создания из миграции вместо своей собственной.   -  person inF    schedule 04.02.2015


Ответы (1)


Вы должны указать конфигурацию для каждого исполнения, а не для каждого плагина. В противном случае более поздняя конфигурация того же плагина перезапишет предыдущие.

Это означает, что ваш pom.xml должен выглядеть примерно так:

<profiles>
<profile>
    <id>drop-create</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>3.1</version>
                <executions>
                    <execution>
                        <id>drop-create-database</id>
                        <!-- Need to garantee order of execution -->
                        <phase>package</phase>
                        <goals>
                            <goal>clean</goal>
                            <goal>migrate</goal>
                        </goals>
                        <configuration>
                            <driver>net.sourceforge.jtds.jdbc.Driver</driver>
                            <table>MIGRATION_LOG</table>
                            <sqlMigrationPrefix>EMP_</sqlMigrationPrefix>
                            <skip>false</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile>
<profile>
    <id>migrate</id>
    <build>
        <plugins>
            <plugin>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-maven-plugin</artifactId>
                <version>3.1</version>
                <executions>
                    <execution>
                        <id>migrate-database</id>
                        <phase>pre-integration-test</phase>
                        <goals>
                            <goal>migrate</goal>
                        </goals>
                        <configuration>
                            <driver>net.sourceforge.jtds.jdbc.Driver</driver>
                            <table>MIGRATION_LOG</table>
                            <sqlMigrationPrefix>ALL_</sqlMigrationPrefix>
                            <skip>false</skip>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</profile>

person SpaceTrucker    schedule 04.02.2015
comment
Черт возьми, я думал, что пробовал это ... видимо, у меня была ошибка! Большое спасибо, работает нормально. - person inF; 04.02.2015