Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用Maven填充DB_Java_Maven_Sql Maven Plugin - Fatal编程技术网

Java 用Maven填充DB

Java 用Maven填充DB,java,maven,sql-maven-plugin,Java,Maven,Sql Maven Plugin,假设我在Maven中的标准配置是: 编译、测试和打包——做他们正常的事情 集成前测试: 生成DB模式脚本(带concat的maven antrun插件) 在DB(sql maven插件)上运行这些脚本 运行自定义Java程序,用数据(exec或antrun)填充数据库 从jar启动服务器(maven antrun插件,因为exec不会分叉) 集成测试:使用从jar运行的服务器运行测试 集成后测试:停止服务器(exec) 对于正常的执行路径,它工作得很好(除了点之外,Maven插件排序中的

假设我在Maven中的标准配置是:

  • 编译、测试和打包——做他们正常的事情
  • 集成前测试:
    • 生成DB模式脚本(带concat的maven antrun插件)
    • 在DB(sql maven插件)上运行这些脚本
    • 运行自定义Java程序,用数据(exec或antrun)填充数据库
    • 从jar启动服务器(maven antrun插件,因为exec不会分叉)
  • 集成测试:使用从jar运行的服务器运行测试
  • 集成后测试:停止服务器(exec)
对于正常的执行路径,它工作得很好(除了点之外,Maven插件排序中的模bug)

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

到目前为止,我认为我可以在他们自己的配置文件中安装模式、填充db并启动jetty,然后:

mvn pre-integration-test -Pinstall-schema
这很糟糕,因为它仍然会运行前面的所有阶段,我真的不想为它编译、测试和打包


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

是的,我认为您可以通过Maven概要文件的某些属性通过条件激活来实现这一点,例如:

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

希望这能有所帮助。

问题不在于“如何在条件下运行配置文件”,而在于“如何只运行这一个配置文件,完全忽略生命周期,跳过编译、测试、打包和其他我不需要的内容”。我不知道你有多少个配置文件,但如果你为每一个都分配一个属性,这难道不能解决你的问题吗?这样,您可以指定要运行的配置文件。
mvn -DdoItPlz ...