Java 如何通过maven运行嵌入式mysql服务器?

Java 如何通过maven运行嵌入式mysql服务器?,java,mysql,maven,Java,Mysql,Maven,有没有办法在maven集成测试期间运行一些轻量级MySql?我所发现的是,它似乎是在客户端应用程序内部启动的。是否有一种方法或包装器可以将其作为litle服务器运行?还是其他运行轻量级Mysql服务器的方法/实现 注意 还有一个库,看起来不错,但太旧了(2006)。正如@hotzst所提到的,一个类似or的嵌入式数据库已经非常有用了 但是,如果确实需要,您可以使用来启动maven构建过程中的任何软件 唯一的先决条件是在您的机器上安装一个正常工作的docker或docker机器 在进行集成测试时,

有没有办法在maven集成测试期间运行一些轻量级MySql?我所发现的是,它似乎是在客户端应用程序内部启动的。是否有一种方法或包装器可以将其作为litle服务器运行?还是其他运行轻量级Mysql服务器的方法/实现

注意


还有一个库,看起来不错,但太旧了(2006)。

正如@hotzst所提到的,一个类似or的嵌入式数据库已经非常有用了

但是,如果确实需要,您可以使用来启动maven构建过程中的任何软件

唯一的先决条件是在您的机器上安装一个正常工作的docker或docker机器

在进行集成测试时,我使用以下代码片段启动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>

org.jolokia
docker maven插件
0.13.7
违约
真的
mysql
mysql:5.7.10
3306:3306
蒙戈
黄色的
开始
预集成测试
建造
开始
停止
整合后测试
停止
您可以使用
mvn:verify
启动所有集成测试和相应的maven阶段。
第一次运行此插件可能需要一段时间。

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

但是,如果确实需要,您可以使用来启动maven构建过程中的任何软件

唯一的先决条件是在您的机器上安装一个正常工作的docker或docker机器

在进行集成测试时,我使用以下代码片段启动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>

org.jolokia
docker maven插件
0.13.7
违约
真的
mysql
mysql:5.7.10
3306:3306
蒙戈
黄色的
开始
预集成测试
建造
开始
停止
整合后测试
停止
您可以使用
mvn:verify
启动所有集成测试和相应的maven阶段。
第一次运行此插件可能需要一段时间。

我可以想象,在集成测试期间使用MySQL是有原因的,但它们是什么?因为我的第一个问题是为什么不使用内存数据库。好的,应该使用什么内存数据库?这是一个很好的观点,但对于不同的数据库,我有不同的sql方言。这是第一次。第二个问题不是运行整个MySql,而是运行Lith版本,当然它可以(在好的情况下)在内存中,但支持所有(或大多数使用的)MySql特性。(我所说的特性主要是指sql语法,而不是所有db server特性)我可以想象,在集成测试期间使用MySQL是有原因的,但它们是什么?因为我的第一个问题是为什么不使用内存数据库。好的,应该使用什么内存数据库?这是一个很好的观点,但对于不同的数据库,我有不同的sql方言。这是第一次。第二个问题不是运行整个MySql,而是运行Lith版本,当然它可以(在好的情况下)在内存中,但支持所有(或大多数使用的)MySql特性。(我所说的功能主要是指sql语法,而不是所有db server功能)但它们有不同的sql方言,不是吗?这两种数据库都提供与其他数据库的方言兼容性。在互联网上你可以很容易地找到。你尝试过这种模式吗?正如我看到的,需要在sql查询/模式中进行编辑。然后您只需尝试docker插件,但它们有不同的sql方言,不是吗?两个数据库都提供与其他数据库的方言兼容性。在互联网上你可以很容易地找到。你尝试过这种模式吗?正如我所看到的,需要在sql查询/模式中进行编辑。然后您只需尝试docker插件