2010-07-12 161 views
0

我正在使用Hibernate进行数据库访问。我已经设置好了一切工作,以便我可以使用mvn hibernate3:hbm2ddl来构建数据库模式,并且我使用mvn liquibase:update来将初始数据填充到数据库中(DBUnit是我的第一次尝试,但是我不能'不要让它与甲骨文合作,而Liquibase只是第一次工作)。Maven执行顺序执行几个插件

我的问题是,如果我执行hbm2ddl来删除并重新创建模式,那么Liquibase DATABASECHANGELOG表保留不变,这意味着Liquibase在下次运行时不会重新创建数据。为了解决这个问题,我配置了mvn sql:execute来对这两个表执行删除操作,但这意味着为了安全起见,我想从头开始构建数据库,现在我需要执行“mvn hibernate3:hbm2ddl sql:执行liquibase:update“

我真的很希望能够配置一些当hibernate3:hbm2ddl命令运行时执行sql:execute命令的东西,以便我知道这样做命令会让我处于一个干净的数据库状态。如果没有这种配置,将自动运行一系列命令,所以我可以配置例如“mvn execute:db-rebuild”来自动运行上述三个命令。

我已经看过mojo-executor的提及,但没有提到如何使用它。我甚至不确定它是否是我想要的正确工具...

回答

0

为什么不把这些不同的东西绑定到像集成测试阶段这样的特定事物。插件的顺序将定义执行的顺序。比你摆脱手呼mvn ...

+0

因为我只想这些工作不经常,而不是在每个构建... – Graham 2010-07-12 17:37:22

+0

好吧 - 我已经读了集成测试现在我已经一台真正的电脑,它看起来像它会做我想要的。 – Graham 2010-07-13 08:21:07