title: Running Flyway on Command Line doesn't find SpringJdbcMigrations
body: <p>I'm trying to set up a process where we run Flyway from the command line to run our migrations (due to some restrictions put on my by my DBAs)</p>
  
  <p>I have this working nicely for the most part, finding and running SQL and normal JdbcMigrations, but it won't recognize my SpringJdbcMigrations, claiming that it doesn't have Spring Jdbc available.</p>
  
  <p>Below, find my file structure, properties, and debug output from flyway:</p>
  
  <p>File Structure
  <img src="https://i.stack.imgur.com/mSafn.png" alt="File Structure"></p>
  
  <p>flyway.properties</p>
  
  <pre><code>#
  # License removed for brevity
  
  # Jdbc url to use to connect to the database
  flyway.url=jdbc:mysql://localhost:3306/my_project
  
  # User to use to connect to the database (default: &lt;&lt;null&gt;&gt;)
  flyway.user=root
  
  # Password to use to connect to the database (default: &lt;&lt;null&gt;&gt;)
  flyway.password=XXXXXXX
  
  # Comma-separated list of locations to scan recursively for migrations. (default: filesystem:&lt;&lt;INSTALL-DIR&gt;&gt;/sql)
  # The location type is determined by its prefix.
  # Unprefixed locations or locations starting with classpath: point to a package on the classpath and may contain both sql and java-based migrations.
  # Locations starting with filesystem: point to a directory on the filesystem and may only contain sql migrations.
  flyway.locations=classpath:com.mycompany.myproject.db.migration,filesystem:sql
  
  # NOTE: All other properties are left as default
  </code></pre>
  
  <p>Debug output:</p>
  
  <pre><code>[localhost ~/Documents/ws-src/flyway-3.0] ./flyway migrate -X
  /usr/bin/tput
  Flyway (Command-line Tool) v.3.0
  
  DEBUG: Adding location to classpath: /Users/biggusjimmus/Documents/ws-src/flyway-3.0/bin/../jars/java-migration.jar
  DEBUG: Adding location to classpath: /Users/biggusjimmus/Documents/ws-src/flyway-3.0/bin/../jars/mysql-connector-java-5.1.26-bin.jar
  #
  # NOTE: This library SHOULD enable Spring Jdbc, as far as I know.
  #
  DEBUG: Adding location to classpath: /Users/biggusjimmus/Documents/ws-src/flyway-3.0/bin/../jars/spring-jdbc-4.0.0.RELEASE.jar
  Database: jdbc:mysql://localhost:3306/myproject (MySQL 5.6)
  DEBUG: DDL Transactions Supported: false
  DEBUG: Schema: myproject
  #
  #NOTE: spring-jdbc-4.0.0.RELEASE.jar was apparently added to the classpath above!
  #
  DEBUG: Spring Jdbc available: false
  DEBUG: Spring Jdbc available: false
  DEBUG: Validating migrations ...
  DEBUG: Scanning for classpath resources at 'com/mycompany/myproject/db/migration' (Prefix: 'V', Suffix: '.sql')
  DEBUG: Scanning URL: jar:file:/Users/biggusjimmus/Documents/ws-src/flyway-3.0/bin/../jars/java-migration.jar!/com/mycompany/myproject/db/migration
  DEBUG: JBoss VFS v2 available: false
  DEBUG: Filtering out resource: com/mycompany/myproject/db/migration/ (filename: )
  DEBUG: Filtering out resource: com/mycompany/myproject/db/migration/V1_1_4_2__Java_Spring_Example.class (filename: V1_1_4_2__Java_Spring_Example.class)
  DEBUG: Filtering out resource: com/mycompany/myproject/db/migration/V1_1_4_3__Java_NoSpring_Example.class (filename: V1_1_4_3__Java_NoSpring_Example.class)
  DEBUG: Scanning for classes at 'com/mycompany/myproject/db/migration' (Implementing: 'org.flywaydb.core.api.migration.jdbc.JdbcMigration')
  DEBUG: Scanning URL: jar:file:/Users/biggusjimmus/Documents/ws-src/flyway-3.0/bin/../jars/java-migration.jar!/com/mycompany/myproject/db/migration
  DEBUG: JBoss VFS v2 available: false
  DEBUG: Filtering out resource: com/mycompany/myproject/db/migration/ (filename: )
  #
  # NOTE: Why did it find the NoSpring example (which implements JdbcMigration), 
  # but not the spring example (which implements SpringJdbcMigration), even though 
  # it's in the same package? 
  # Presumably because it doesn't think it has Spring Jdbc support
  #
  DEBUG: Found class: com.mycompany.myproject.db.migration.V1_1_4_3__Java_NoSpring_Example
  DEBUG: Scanning for filesystem resources at 'sql' (Prefix: 'V', Suffix: '.sql')
  DEBUG: Scanning for resources in path: sql (sql)
  DEBUG: Filtering out resource: sql/.DS_Store (filename: .DS_Store)
  DEBUG: Found filesystem resource: sql/V1_1_3__Base_version.sql
  DEBUG: Found filesystem resource: sql/V1_1_4_1__SQL_Example.sql
  Validated 3 migrations (execution time 00:00.052s)
  DEBUG: Schema `myproject` already exists. Skipping schema creation.
  DEBUG: Locking table `myproject`.`schema_version`...
  DEBUG: Lock acquired for table `myproject`.`schema_version`
  Current version of schema `myproject`: 1.1.3
  Migrating schema `myproject` to version 1.1.4.1
  DEBUG: Successfully completed and committed migration of schema `myproject` to version 1.1.4.1
  DEBUG: MetaData table `myproject`.`schema_version` successfully updated to reflect changes
  DEBUG: Locking table `myproject`.`schema_version`...
  DEBUG: Lock acquired for table `myproject`.`schema_version`
  Migrating schema `myproject` to version 1.1.4.3
  DEBUG: Successfully completed and committed migration of schema `myproject` to version 1.1.4.3
  DEBUG: MetaData table `myproject`.`schema_version` successfully updated to reflect changes
  DEBUG: Locking table `myproject`.`schema_version`...
  DEBUG: Lock acquired for table `myproject`.`schema_version`
  Successfully applied 2 migrations to schema `myproject` (execution time 00:00.049s).
  </code></pre>
  
  <p>If there's any other information i can provide that may be helpful, please let me know.</p>
  
  <p>EDIT:
  I also tried modifying the shell shell script to add the spring-jdbc jar to its classpath directly.  Running with that modification caused no apparent change.</p>
  
  <p>Running with that change (on top of the updated database, and without the debug flag) produced this result:</p>
  
  <pre><code>[localhost ~/Documents/ws-src/flyway-3.0] sh -x flyway migrate
  ++ pwd
  + OLDDIR=/Users/biggusjimmus/Documents/ws-src/flyway-3.0
  + PRG=flyway
  + '[' -h flyway ']'
  ++ dirname flyway
  + INSTALLDIR=.
  + cd .
  + '[' -z '' ']'
  + JAVA_CMD=java
  + command -v tput
  /usr/bin/tput
  ++ tput cols
  + CONSOLE_WIDTH=116
  + java -cp ./bin/flyway-commandline-3.0.jar:./bin/flyway-core-3.0.jar:./jars/spring-jdbc-4.0.0.RELEASE.jar org.flywaydb.commandline.Main migrate -consoleWidth=116
  Flyway (Command-line Tool) v.3.0
  
  Database: jdbc:mysql://localhost:3306/myproject (MySQL 5.6)
  Validated 3 migrations (execution time 00:00.052s)
  Current version of schema `myproject`: 1.1.4.3
  Schema `myproject` is up to date. No migration necessary.
  + JAVA_EXIT_CODE=0
  + cd /Users/biggusjimmus/Documents/ws-src/flyway-3.0
  + exit 0
  </code></pre>