使用Maven SQL插件的连接授权失败

时间:2015-07-20 17:53:42

标签: maven db2 continuous-integration maven-plugin

我正在使用Maven SQL插件在DB2数据库上执行脚本,这是配置。

    <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>sql-maven-plugin</artifactId>
        <version>1.5</version>

        <dependencies>

            <dependency>
                <groupId>com.ibm.db2.jcc.db2jcc4</groupId>
                <artifactId>com.ibm.db2.jcc.db2jcc4</artifactId>
                <version>1.0</version>
            </dependency>

        </dependencies>

        <configuration>

          <driver>com.ibm.db2.jcc.DB2Driver</driver>
          <url>jdbc:db2://SERVER:50000/TEST</url>
          <username>DB2ADMIN</username>
          <password>iJur$$99X</password>

        </configuration>

        <executions>
          <execution>
            <id>drop-table</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <autocommit>true</autocommit>
              <sqlCommand>DROP TABLE person</sqlCommand>
            </configuration>
          </execution>

          <execution>
            <id>create-table</id>
            <phase>process-test-resources</phase>
            <goals>
              <goal>execute</goal>
            </goals>
            <configuration>
              <autocommit>true</autocommit>
              <srcFiles>
                <srcFile>src/main/sql/schema.sql</srcFile>
              </srcFiles>
            </configuration>
          </execution>

        </executions>
      </plugin>

src/main/sql/schema.sql的内容:

CREATE TABLE person (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(255));

使用此命令执行构建:

>mvn test -e

得到以下错误

[ERROR] Failed to execute goal org.codehaus.mojo:sql-maven-plugin:1.5:execute (drop-table) on project I3LOC: [jcc][t4][2013][11249][4.3.111] 
Connection authorization failure occurred.  
Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000 -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: 
Failed to execute goal org.codehaus.mojo:sql-maven-plugin:1.5:execute (drop-table) on project I3LOC: [jcc][t4][2013][11249][4.3.111] 
Connection authorization failure occurred.  
Reason: User ID or Password invalid. ERRORCODE=-4214, SQL STATE=28000   

使用以下命令将db2jcc.jar安装到本地Maven存储库:

mvn install:install-file -Dfile=D:\vinu\workspace\Maven\BatchFramework\lib\db2jcc4.jar -DgroupId=com.ibm.db2.jcc.db2jcc4 -DartifactId=com.ibm.db2.jcc.db2jcc4 -Dversion=1.0 -Dpackaging=jar

注意:指定的凭证(DB2ADMIN,iJur $$ 99X)是正确的,使用此凭证我能够连接到TEST数据库

1 个答案:

答案 0 :(得分:0)

  1. 上面的maven配置使用普通密码正常工作,正如mustaccio所指出的那样,问题是由于密码中的特殊($$)字符。
  2. 我将使用sql插件团队来解决问题。