Package org.flywaydb.maven
Class ValidateMojo
- java.lang.Object
-
- org.apache.maven.plugin.AbstractMojo
-
- org.flywaydb.maven.ValidateMojo
-
- All Implemented Interfaces:
org.apache.maven.plugin.ContextEnabled
,org.apache.maven.plugin.Mojo
@Mojo(name="validate", requiresDependencyResolution=TEST, defaultPhase=PRE_INTEGRATION_TEST, threadSafe=true) public class ValidateMojo extends org.apache.maven.plugin.AbstractMojo
Validate applied migrations against resolved ones (on the filesystem or classpath) to detect accidental changes that may prevent the schema(s) from being recreated exactly.
Validation fails if
- differences in migration names, types or checksums are found
- versions have been applied that aren't resolved locally anymore
- versions have been resolved that haven't been applied yet
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
driver
The fully qualified classname of the JDBC driver to use to connect to the database.java.lang.Boolean
failOnMissingLocations
Whether to fail if a location specified in the flyway.locations option doesn't existprotected org.apache.maven.project.MavenProject
mavenProject
Reference to the current project that includes the Flyway Maven plugin.protected org.apache.maven.settings.Settings
settings
The link to the settings.xmlprotected boolean
skip
Whether to skip the execution of the Maven Plugin for this module.protected java.lang.String
url
The JDBC url to use to connect to the database.protected java.lang.String
user
The user to use to connect to the database.java.lang.String[]
vaultSecrets
A comma-separated list of paths to secrets in Vault that contain Flyway configurations.java.lang.String
vaultToken
The Vault token required to access your secrets.java.lang.String
vaultUrl
The REST API URL of your Vault server, including the API version.
-
Constructor Summary
Constructors Constructor Description ValidateMojo()
-
Method Summary
Modifier and Type Method Description protected void
doExecute(org.flywaydb.core.Flyway flyway)
Executes this mojo.void
execute()
protected boolean
getBooleanProperty(java.lang.String systemPropertyName, boolean mavenPropertyValue)
Retrieves the value of this boolean property, based on the matching System property on the Maven property.protected java.lang.String
getProperty(java.lang.String name)
Retrieves this property from either the system or the maven properties.
-
-
-
Field Detail
-
skip
@Parameter(property="flyway.skip") protected boolean skip
Whether to skip the execution of the Maven Plugin for this module.Also configurable with Maven or System Property: ${flyway.skip}
-
driver
@Parameter(property="flyway.driver") protected java.lang.String driver
The fully qualified classname of the JDBC driver to use to connect to the database. By default, the driver is autodetected based on the url.Also configurable with Maven or System Property: ${flyway.driver}
-
url
@Parameter(property="flyway.url") protected java.lang.String url
The JDBC url to use to connect to the database.Also configurable with Maven or System Property: ${flyway.url}
-
user
@Parameter(property="flyway.user") protected java.lang.String user
The user to use to connect to the database. (default: blank) The credentials can be specified by user/password orserverId
from settings.xmlAlso configurable with Maven or System Property: ${flyway.user}
-
vaultUrl
@Parameter(property="flyway.vault.url") public java.lang.String vaultUrl
The REST API URL of your Vault server, including the API version. Currently only supports API version v1. Example: http://localhost:8200/v1/ Flyway Teams only
-
vaultToken
@Parameter(property="flyway.vault.token") public java.lang.String vaultToken
The Vault token required to access your secrets. Flyway Teams only
-
vaultSecrets
@Parameter public java.lang.String[] vaultSecrets
A comma-separated list of paths to secrets in Vault that contain Flyway configurations. This must start with the name of the engine and end with the name of the secret. The resulting form is '{engine_name}/{path}/{to}/{secret_name}'. If multiple secrets specify the same configuration parameter, then the last secret takes precedence. Example: secret/data/flyway/flywayConfig Flyway Teams only
-
failOnMissingLocations
@Parameter(property="flyway.failOnMissingLocations") public java.lang.Boolean failOnMissingLocations
Whether to fail if a location specified in the flyway.locations option doesn't exist
-
settings
@Parameter(defaultValue="${settings}", readonly=true) protected org.apache.maven.settings.Settings settings
The link to the settings.xml
-
mavenProject
@Parameter(defaultValue="${project}", readonly=true, required=true) protected org.apache.maven.project.MavenProject mavenProject
Reference to the current project that includes the Flyway Maven plugin.
-
-
Method Detail
-
doExecute
protected void doExecute(org.flywaydb.core.Flyway flyway) throws java.lang.Exception
Executes this mojo.- Parameters:
flyway
- The flyway instance to operate on.- Throws:
java.lang.Exception
- Any exception.
-
getBooleanProperty
protected boolean getBooleanProperty(java.lang.String systemPropertyName, boolean mavenPropertyValue)
Retrieves the value of this boolean property, based on the matching System property on the Maven property.- Parameters:
systemPropertyName
- The name of the System property.mavenPropertyValue
- The value of the Maven property.
-
execute
public final void execute() throws org.apache.maven.plugin.MojoExecutionException
- Throws:
org.apache.maven.plugin.MojoExecutionException
-
getProperty
protected java.lang.String getProperty(java.lang.String name)
Retrieves this property from either the system or the maven properties.- Parameters:
name
- The name of the property to retrieve.- Returns:
- The property value.
null
if not found.
-
-