A mio parere, il migliore e l'approccio più flessibile è quello di:
a) profili di utilizzo e di filtraggio - mantenere tutte le proprietà di configurazione per profilo specifico (sviluppo, test, etc.) , per esempio in development.properties:
jdbc.url=jdbc:mysql://127.0.0.1:3306/testdb?useSSL=false
jdbc.user=testuser
jdbc.password=testpass
jdbc.driver=com.mysql.jdbc.Driver
Poi, nel file POM (possibilmente in POM root) definire un profilo, ad esempio:
...
<profiles>
<profile>
<id>development</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<filters>
<filter>../filters/development.properties</filter>
</filters>
</build>
...
qui si può vedere che sviluppo profilo viene attivato per default . Se si desidera utilizzare un altro profilo impostato con
-p [profile-id]
b) flyway.properties set con filtrati valori - i tuoi flyway.properties dovrebbero sedersi ad esempio in src/main/risorse ed i valori dovrebbero essere utilizzati dai parametri definiti nelle proprietà del profilo del file:
flyway.driver = ${jdbc.driver}
flyway.url = ${jdbc.url}
flyway.user = ${jdbc.user}
flyway.password = ${jdbc.password}
c) flyway.properties di riferimento da directory di compilazione - uso semplice configurazione del plugin (mi piace molto pulita poms):
...
<build>
<resources>
<!-- This way we instruct maven to inject values from filters into the resources -->
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-maven-plugin</artifactId>
<configuration>
<configFile>${project.build.directory}/classes/flyway.properties</configFile>
<locations>
<location>classpath:migration/mysql</location>
</locations>
</configuration>
</plugin>
</plugins>
</build>
...
Non dimenticare di abilitare il filtro nelle risorse come mostrato in molti esempi qui. La mia versione del plug-in flyway-maven da è 3.2.1 ed è gestita in pluginManagement nel padre pom, quindi la versione non è visibile qui. Uso anche script sql espliciti con la configurazione delle posizioni.
Grazie mille, funziona come fascino .. – Garry
Per riferimento futuro, questo funziona benissimo, ma è necessario invocare l'inizializzazione di mvn esplicitamente prima di chiamare il plugin flay, ad es. 'mvn initialize flyway: migrate' –