2013-03-19 23 views
1

我使用Maven 3.0.3,MySQL的5.5使用Maven插件SQL(V 1.5),以创建一个测试数据库为我的JUnit测试...当SQL插件无法连接到数据库时,是否可以让Maven输出自定义错误消息?

   <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插件之外的其他插件。

谢谢 - 戴夫

回答

0

由于错误信息是具体到每个数据库(你会得到比MySQL在甲骨文不同的错误消息),并且每个数据库以不同的方式处理这些错误,也可能不是一个通用的方法。 Spring框架将数据库错误封装到一个丰富的异常层次结构中,您可能想看看它们是如何以通用方式处理这些错误的。

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

为什么你要提供更友好的错误信息的具体原因?

+0

我想提供更友好的错误消息,以便运行pom的其他开发人员知道在发生故障时该做什么。如果这有助于回答这个问题,我们将一直使用MySQL。 – Dave 2013-03-20 17:10:39

+0

创建一个列出常见错误消息的Wiki页面不是更容易吗,它们是什么意思以及如何解决它们? – nwinkler 2013-03-20 20:18:03

+0

不幸的是,没有人阅读电子邮件或维基页面。正如我所说的,我想让这个过程变得非常简单,只要他们看到错误信息,他们就知道该做什么,而无需阅读任何内容或访问任何外部网站。 – Dave 2013-03-25 18:26:19