【问题标题】:How run Embedded mysql server via maven?如何通过 maven 运行嵌入式 mysql 服务器?
【发布时间】:2016-01-16 15:40:35
【问题描述】:

有没有办法在 maven 集成测试期间运行一些轻量级的 MySql?我找到的只是libmysqld,但它似乎是在客户端应用程序中启动的。可能有一种方法或包装器可以将它作为小服务器运行吗?或者其他方式/实现来运行轻量级Mysql服务器?

注意

还有mysql-je图书馆,看起来不错但是太旧了(2006)。

【问题讨论】:

  • 我可以想象在集成测试中使用 MySQL 是有原因的,但它们是什么?因为我的第一个问题是为什么不使用内存数据库。
  • 好的,应该使用什么内存数据库?这是一个很好的观点,但在不同的数据库的情况下,我有不同的 sql 方言。这是第一个。第二个问题不是关于运行整个 MySql,而是 litgh 版本,它当然可以(在好的情况下)内存,但支持所有(或最常用的)MySql 功能。 (我主要指的是 sql 语法,不是所有的数据库服务器功能)

标签: java mysql maven


【解决方案1】:

正如@hotzst 所提到的,像h2hsqldb 这样的嵌入式数据库已经非常有用了。

但如果你真的需要,你可以使用 https://github.com/rhuss/docker-maven-plugin 在你的 maven 构建过程中启动任何软件。

唯一的先决条件是在您的机器上安装工作的 docker 或 docker-machine。

我在做集成测试时使用下面的代码sn-p来启动一个mongodb

<plugin>

    <groupId>org.jolokia</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.13.7</version>

    <configuration>                                 
        <logDate>default</logDate>
        <autoPull>true</autoPull>
        <images>
            <image>
                <alias>mysql</alias>
                <name>mysql:5.7.10</name>
                <run>
                    <ports>
                        <port>3306:3306</port>
                    </ports>
                    <log>
                        <prefix>Mongo</prefix>
                        <color>yellow</color>
                    </log>
                </run>
            </image>
        </images>
    </configuration>

    <executions>
        <execution>
            <id>start</id>
            <phase>pre-integration-test</phase>
            <goals>
                <goal>build</goal>
                <goal>start</goal>
            </goals>
        </execution>
        <execution>
            <id>stop</id>
            <phase>post-integration-test</phase>
            <goals>
                <goal>stop</goal>
            </goals>
        </execution>

    </executions>
</plugin>

您可以使用mvn:verify 启动所有集成测试和相应的 maven 阶段。 首次运行此插件可能需要一段时间。

【讨论】:

  • 但是他们有不同的sql方言,不是吗?
  • 两个数据库都为其他数据库提供方言兼容性。在互联网上你很容易找到further notes
  • 你试过这种模式吗?正如我所见,需要在 sql 查询/模式中编辑 too many things
  • 那你试试docker-plugin
猜你喜欢
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 1970-01-01
  • 2018-07-16
  • 1970-01-01
  • 2013-12-28
  • 1970-01-01
  • 2023-03-05
相关资源
最近更新 更多