У меня есть проект весенней загрузки с использованием maven, который я включил в flyway:
pom. xml:
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>6.5.0</version>
</dependency>
и application.properties:
#LOCAL
spring.datasource.url=jdbc:postgresql://localhost:5432/theDatabase
spring.datasource.username=theRightUser
spring.datasource.password=theRightPassword
, и оно работает должным образом, когда я запускаю приложение.
Однако я пытаюсь запустить mvn flyway:clean
из командной строки, и оно, похоже, неправильно распознает конфигурацию:
[ERROR] Failed to execute goal org.flywaydb:flyway-maven-plugin:6.4.4:clean (default-cli) on project my-service: org.flywaydb.core.api.FlywayException: Unable to connect to the database. Configure the url, user and password! -> [Help 1]
Я попытался добавить свойства spring.flyway
(user / pass / url) в файл application.properties, но это дало мне ту же ошибку. Что мне нужно сделать, чтобы перелетный путь мог читать из application.properies, как это происходит при нормальной работе приложения?
РЕДАКТИРОВАТЬ: Я добился небольшого прогресса: я смог сослаться на свой application.properties
как файл конфигурации пролетного пути, добавив его в pom. xml:
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>6.5.0</version>
<configuration>
<configFiles>${project.basedir}/src/main/resources/application.properties</configFiles>
</configuration>
</plugin>
Итак, теперь в этом файле , У меня есть flyway.url
, flyway.user
и flyway.password
. Это позволяет мне запускать цели пролетного пути из командной строки, но это не совсем то решение, которое мне нужно. Я собираюсь использовать этот плагин, чтобы попытаться прочитать свойства в файле pom. xml, а затем использовать эти значения в области flyway-maven-plugin
s <configuration>
.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${project.basedir}/src/main/resources/application.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
, что будет позвольте мне сделать это:
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<version>6.5.0</version>
<configuration>
<url>${spring.datasource.url}</url>
<user>${spring.datasource.username}</user>
<password>${spring.datasource.password}</password>
</configuration>
</plugin>