maven sql插件已成功执行0个sql语句中的0个

maven sql插件已成功执行0个sql语句中的0个,maven,Maven,我想要的是能够从maven创建/删除db(如果可能的话)。我找到了maven sql插件,但不知道如何创建数据库。不知怎的,maven告诉我没有sql命令。有人能帮我解决这个问题吗 结果如下 d:\Projects\Learn\hibernate>mvn sql:execute [INFO] Scanning for projects... [INFO] [INFO] ---------------------------------------------------------

我想要的是能够从maven创建/删除db(如果可能的话)。我找到了maven sql插件,但不知道如何创建数据库。不知怎的,maven告诉我没有sql命令。有人能帮我解决这个问题吗

结果如下

    d:\Projects\Learn\hibernate>mvn sql:execute
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building App 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- sql-maven-plugin:1.5:execute (default-cli) @ learn ---
[INFO] 0 of 0 SQL statements executed successfully
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.027s
[INFO] Finished at: Wed Sep 18 11:34:25 MSK 2013
[INFO] Final Memory: 8M/107M
[INFO] ------------------------------------------------------------------------
和pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>learn-hibernate</groupId>
<artifactId>learn</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>App</name>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.build.outputEncoding>UTF-8</project.build.outputEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.2.4.Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-annotations</artifactId>
        <version>3.5.6-Final</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>3.4.0.GA</version>
    </dependency>
    <dependency>
        <groupId>postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>9.1-901.jdbc4</version>
    </dependency>
</dependencies>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>exec-maven-plugin</artifactId>
                <version>1.1</version>
                <configuration>
                    <mainClass>App.App</mainClass>
                </configuration>
            </plugin>

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

                <dependencies>
                    <!-- specify the dependent jdbc driver here -->
                    <dependency>
                        <groupId>postgresql</groupId>
                        <artifactId>postgresql</artifactId>
                        <version>9.1-901.jdbc4</version>
                    </dependency>
                </dependencies>

                <configuration>
                    <driver>org.postgresql.Driver</driver>
                    <url>jdbc:postgresql://localhost:5432</url>
                    <username>postgres</username>
                    <password>123456</password>
                </configuration>

                <executions>
                    <execution>
                        <id>default</id>
                        <phase>compile</phase>
                        <goals>
                            <goal>execute</goal>
                        </goals>
                        <configuration>
                            <url>jdbc:postgressql://localhost:5432</url>
                            <!-- no transaction -->
                            <autocommit>true</autocommit>
                            <sqlCommand>create database "hib"</sqlCommand>
                        </configuration>
                    </execution>
                </executions>

            </plugin>
        </plugins>
    </pluginManagement>
</build>

4.0.0
学习冬眠
学习
1.0-快照
罐子
应用程序
UTF-8
UTF-8
朱尼特
朱尼特
4.11
org.hibernate
冬眠核心
4.2.4.最终版本
org.hibernate
休眠注释
3.5.6-最终版本
org.hibernate
休眠实体管理器
3.4.0.GA
postgresql
postgresql
9.1-901.jdbc4
org.codehaus.mojo
execmaven插件
1.1
App.App
org.codehaus.mojo
SQLMaven插件
1.5
postgresql
postgresql
9.1-901.jdbc4
org.postgresql.Driver
jdbc:postgresql://localhost:5432
博士后
123456
违约
编译
执行
jdbc:postgressql://localhost:5432
真的
创建数据库“hib”

您的一个URL中有一个输入错误,
postgresql
必须是
postgresql

当您运行
mvn sql:execute
时,它只是拾取插件配置,而不是插件执行,除非您为它指定
id
default cli
(您的cli刚刚设置了
default

您配置的插件执行可能在运行正常生命周期时起作用,例如
mvn compile
mvn install
(与
mvn sql:execute
)但是,要使其起作用,您需要
plugins.plugin
定义(与
pluginManagement.plugins.plugin
定义相反

事实上,您可以使用此插件
创建
删除
数据库。我已经这样做了,并将其广泛用于单元测试。我们分为四个阶段:

  • 创建数据库。从通用数据库执行
  • 从新创建的数据库运行DDL.Executed
  • 运行单元测试
  • 删除数据库。从通用数据库执行

  • 如果单元测试失败,您的数据库不会被删除,这对于分析来说可能是一件好事。这意味着创建数据库必须处理已经存在的待创建数据库(
    onError=continue
    ).

    特别是第三段解释了为什么您成功地执行了0个SQL语句中的0个。。您已将sqlCommand配置为执行块的一部分,而不是常规配置,因此
    SQL:exec
    无法工作。我想您确实需要第二段和第三段来修复它。哦……这是一个新手犯的错误。我很惭愧。修正排版有帮助。谢谢。