当SQL插件无法连接到db时,我可以让Maven打印出自定义错误消息吗?

时间:2013-03-19 21:12:10

标签: mysql maven error-handling maven-plugin

我正在使用Maven 3.0.3,MySQL 5.5和Maven SQL插件(v 1.5)为我的JUnit测试创建一个测试数据库......

                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>sql-maven-plugin</artifactId>
                    <version>1.5</version>
                    <dependencies>
                        <dependency>
                            <groupId>mysql</groupId>
                            <artifactId>mysql-connector-java</artifactId>
                            <version>5.1.18</version>
                        </dependency>
                    </dependencies>
                    <!-- common configuration shared by all executions -->
                    <configuration>
                        <driver>com.mysql.jdbc.Driver</driver>
                        <url>jdbc:mysql://${test.mysql.db.host}:${test.mysql.db.port}/${test.mysql.db.sid}</url>
                        <username>${test.mysql.db.user}</username>
                        <password>${test.mysql.db.password}</password>
                        <!--all executions are ignored if -Dmaven.test.skip=true -->
                        <skip>${maven.test.skip}</skip>
                    </configuration>

                    <executions>
                        <execution>
                            <id>create-test-db</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>execute</goal>
                            </goals>
                            <configuration>
                                <url>jdbc:mysql://${test.mysql.db.host}:${test.mysql.db.port}</url>
                                <username>${test.mysql.db.user}</username>
                                <password>${test.mysql.db.password}</password>
                                <autocommit>true</autocommit>
                                <sqlCommand>create database if not exists ${test.mysql.db.sid}</sqlCommand>
                            </configuration>
                        </execution>
                    </executions>

如果无法建立连接(因为用户尚未创建或具有错误的权限),我想显示一条更友好的错误消息,而不是在事情消失时默认打印出来的错误消息。有谁知道这是怎么做到的吗?除了Maven SQL插件之外,我还可以使用其他插件。

谢谢, - 戴夫

1 个答案:

答案 0 :(得分:0)

由于错误消息特定于每个数据库(您将在Oracle上获得与MySQL不同的错误消息),并且每个数据库以不同的方式处理这些错误,因此可能不存在通用方法。 Spring框架将数据库错误封装到一个丰富的异常层次结构中,您可能需要查看它以了解它们如何以通用方式处理这些错误。

一个选项是扩展Maven SQL插件并在其中添加该功能。如果你可以跨数据库以通用的方式做到这一点,甚至更好,但我想如果你能让它只适用于MySQL,那对你来说已经有所帮助了。

您想提供更友好的错误消息的任何具体原因?