Flyway can';使用Ant时,在类路径上找不到Spring Java迁移
我在我的项目中设置了具有以下目录布局的Flyway(不包括不相关的目录):Flyway can';使用Ant时,在类路径上找不到Spring Java迁移,java,ant,classpath,flyway,Java,Ant,Classpath,Flyway,我在我的项目中设置了具有以下目录布局的Flyway(不包括不相关的目录): $tree数据库 数据库 ├── 解放党 │ ├── flyway-ant-2.0.1.jar │ ├── flyway-core-2.0.1.jar │ ├── migrate.jar │ ├── spring-beans-3.1.2.RELEASE.jar │ ├── spring-core-3.1.2.RELEASE.jar │ ├── spring-dao-2.0.8.jar │ └─
$tree数据库
数据库
├── 解放党
│ ├── flyway-ant-2.0.1.jar
│ ├── flyway-core-2.0.1.jar
│ ├── migrate.jar
│ ├── spring-beans-3.1.2.RELEASE.jar
│ ├── spring-core-3.1.2.RELEASE.jar
│ ├── spring-dao-2.0.8.jar
│ └── spring-jdbc-3.1.2.RELEASE.jar
└── 更新
├── JAVA
│ └── 数据库
│ └── 迁移
│ └── V1_0__创建_posts.java
└── sql
└── V1_1__创建_用户.sql
以及build.xml的相关部分(flyway.url和flyway.driver设置在此处未包含的属性文件中——flyway与数据库对话没有问题):
以下是在编译目标中创建的迁移JAR的布局:
$unzip-l database/lib/migrate.jar
存档:database/lib/migrate.jar
长度日期时间名称
-------- ---- ---- ----
01-14-13 16:27 META-INF/
103 01-14-13 16:27 META-INF/MANIFEST.MF
0 01-14-13 16:21数据库/
0 01-14-13 16:27数据库/迁移/
0 01-14-13 16:27 sql/
538 01-14-13 16:27数据库/migrate/V1\u 0\u创建\u posts.class
0 01-14-13 16:27 sql/V1\u 1\u create\u users.sql
-------- -------
6417个文件
下面是flyway:info
的输出:
[飞行路线:信息]+-------------+------------------------+---------------------+---------+
[飞行路线:信息]|版本|说明|安装在|状态|
[飞行路线:信息]+-------------+------------------------+---------------------+---------+
[飞行路线:信息]| 0 |>| 2013-01-14 14:14:09 |失踪|
[flyway:info]| 1.1 |创建用户| |挂起|
[飞行路线:信息]+-------------+------------------------+---------------------+---------+
Flyway未发现.class文件。我做错了什么
编辑:如果有人知道使用Ant(没有Maven,没有常春藤)设置的Flyway的工作示例,将不胜感激
更新 原来Flyway会找到
JdbcMigration
类,但不会找到SpringJdbcMigration
此迁移已成功加载:
但这一条被跳过:
/*database/updates/java/database/migrate/V1\u 0\u创建\u posts.java*/
导入org.springframework.jdbc.core.jdbc模板;
导入com.googlecode.flyway.core.api.migration.spring.SpringJdbcMigration;
公共类V1_0__创建_帖子实现SpringJdbcMigration{
public void migrate(JdbcTemplate模板)引发异常{
template.execute(
创建表帖子(id整数主键,title varchar(255),正文)
);
}
}
以下是使用SpringJdbcMigration
时的Ant调试输出:
[antlib:com.googlecode.flyway.ant]无法从资源com/googlecode/flyway/ant/antlib.xml加载定义。找不到。[4/873]
[飞行路线:信息]数据库:H2 1.2
[flyway:info]支持的DDL事务:false
[飞行路线:信息]模式:公共
[flyway:info]无需升级元数据表
[flyway:info]Spring Jdbc可用:false
[flyway:info]扫描“数据库/迁移”处的资源(前缀:“V”,后缀:“.sql”)
[flyway:info]扫描URL:jar:file:…/flyway-sample/database/lib/migrate.jar/数据库/迁移
[飞行路线:信息]JBoss VFS v2可用:错误
[flyway:info]筛选出资源:数据库/迁移/(文件名:)
[flyway:info]筛选出资源:数据库/migrate/V1_0_u创建_posts.class(文件名:V1_0_u创建_posts.class)
[flyway:info]扫描“数据库/迁移”中的类(实现:“com.googlecode.flyway.core.api.migration.jdbc.jdbcmigation”)
[flyway:info]扫描URL:jar:file:…/flyway-sample/database/lib/migrate.jar/数据库/迁移
[flyway:info]筛选出资源:数据库/迁移/(文件名:)
[flyway:info]扫描“db/migration”处的资源(前缀:“V”,后缀:“.sql”)
[flyway:info]无法确定类路径位置的URL:db/migration(类加载器:AntClassLoader[…/flyway sample/lib/h2-1.2.135.jar:…/flyway sample/database/lib/migrate.jar])
[flyway:info]扫描“db/migration”中的类(实现:“com.googlecode.flyway.core.api.migration.jdbc.jdbcigration”)
[flyway:info]无法确定类路径位置的URL:db/migration(类加载器:AntClassLoader[…/flyway sample/lib/h2-1.2.135.jar:…/flyway sample/database/lib/migrate.jar])
[flyway:info]正在扫描“sql”(前缀:“V”,后缀:“.sql”)处的资源
[flyway:info]扫描URL:jar:file:…/flyway-sample/database/lib/migrate.jar/sql
[flyway:info]筛选出资源:sql/(文件名:)
[flyway:info]找到的资源:sql/V1\u 1\u create\u users.sql
[flyway:info]扫描“sql”中的类(实现:“com.googlecode.flyway.core.api.migration.jdbc.jdbcmiggration”)
[flyway:info]扫描URL:jar:file:…/flyway-sample/database/lib/migrate.jar/sql
[flyway:info]筛选出资源:sql/(文件名:)
[flyway:info]筛选出资源:sql/V1\u 1\u create\u users.sql(文件名:V1\u 1\u create\u users.sql)
[飞行路线:信息]+-------------+------------------------+---------------------+---------+
[飞行路线:信息]|版本|说明|安装在|状态|
[飞行路线:信息]+-------------+------------------------+---------------------+---------+
[飞行路线:信息]| 0 |>| 2013-01-14 14:14:09 |失踪|
[飞行路线:信息]|
/* database/updates/java/database/migrate/V1_0__create_posts.java */
import com.googlecode.flyway.core.api.migration.jdbc.JdbcMigration;
import java.sql.Connection;
public class V1_0__create_posts implements JdbcMigration {
public void migrate(Connection conn) throws Exception {
conn.createStatement().execute(
"create table posts (id integer primary key, title varchar(255), body text)"
);
}
}