我无法使用 .sql 文件指定目录的正确路径。我尝试将“baseDir”属性设置为不同位置的不同目录(当然是在类路径中)并设置不同的类路径。构建脚本总是带有消息“<strong>无法找到 sql 迁移的路径:[uri to directory with . sql 文件]”。
它不像类似问题中所说的问题 156,当然如果我删除 SqlMigrationResolver.java 中的代码
if (StringUtils.hasText(baseDir) && !new ClassPathResource(baseDir + "/",
classLoader).exists()) {
LOG.warn("Unable to find path for sql migrations: " + baseDir);
return migrations;
}
正如评论 #9中所说,我仍然抓住
deployDB:
[flyway:migrate] com.googlecode.flyway.core.exception.FlywayException: Error loading sql migration files
[flyway:migrate] Caused by java.io.FileNotFoundException: class path resource [db/migration/] cannot be resolved to URL because it does not exist
BUILD FAILED
c:\DeployTest\build.xml:208: Flyway Error: com.googlecode.flyway.core.exception.FlywayException: Error loading sql migration files
飞路落在
resources = new PathMatchingResourcePatternResolver(classLoader)
.getResources("classpath:" + searchRoot + searchPattern);
它不能执行 getResources 方法。
它看起来不像错误,看起来我无法使用我的 SQL 脚本将正确的 uri 设置为目录 =(
请帮我设置这个该死的uri!
我的 build.xml:
<target name="init-flyway">
<taskdef uri="antlib:com.googlecode.flyway.ant"
resource="com/googlecode/flyway/ant/antlib.xml"
/>
<property name="flyway.driver" value="${dbDriver}"/>
<property name="flyway.url" value="${dbUrl}"/>
<property name="flyway.user" value="${dbScheme}"/>
<property name="flyway.password" value="${dbPass}"/>
<property name="flyway.baseDir" value="\db\migration"/>
<property name="flyway.classpath" value="c:\DeployTest"/>
</target>
<target name="deployDB" depends="init-flyway">
<flyway:migrate/>
</target>