使用Maven填充数据库

时间:2013-12-03 09:14:51

标签: java maven sql-maven-plugin

让我们说我在Maven的标准配置是:

  • 编译,测试和打包 - 做正常的事情
  • 预集成测试:
    • 生成数据库架构脚本(带concat的maven-antrun-plugin)
    • 在DB(sql-maven-plugin)上运行这些脚本
    • 运行自定义Java程序以使用数据(exec或antrun)填充DB
    • 从jar启动服务器(maven-antrun-plugin,因为exec不会分叉)
  • 集成测试:使用从jar
  • 运行的服务器运行测试
  • post-integration-test:停止服务器(exec)

使用正常的执行路径它可以正常工作(除了点之外,Maven插件排序中的模数错误。)

现在,我希望只有一个命令来生成和执行数据库模式脚本,而另一个命令只运行Java程序来填充数据库。

到目前为止,我认为我可以将install-schema,populate-db和start-jetty放在他们自己的配置文件中,然后:

mvn pre-integration-test -Pinstall-schema

这很糟糕,因为它仍会运行所有前面的阶段,我真的不想为它编译,测试和打包。

是否有可能以某种方式单独运行这些“事物”(几个插件执行,一个配置文件),忽略生命周期或跳过编译测试包?

1 个答案:

答案 0 :(得分:0)

是的,我认为你可以通过Maven配置文件的某些属性进行条件激活,例如:

<profile>
    <id>install-schema</id>
    <activation>
        <property>doItPlz</property>
    </activation>
</profile>
...

这样,仅当存在给定doItPlz属性时才激活配置文件 - 因此您可以为构建,db初始化等创建一个。

然后将您必须使用的命令修改为:

mvn -DdoItPlz ...

希望有所帮助。