maven sql插件已成功执行0个sql语句中的0个
我想要的是能够从maven创建/删除db(如果可能的话)。我找到了maven sql插件,但不知道如何创建数据库。不知怎的,maven告诉我没有sql命令。有人能帮我解决这个问题吗 结果如下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] ---------------------------------------------------------
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
定义相反
事实上,您可以使用此插件创建
和删除
数据库。我已经这样做了,并将其广泛用于单元测试。我们分为四个阶段:
如果单元测试失败,您的数据库不会被删除,这对于分析来说可能是一件好事。这意味着创建数据库必须处理已经存在的待创建数据库(
onError=continue
).特别是第三段解释了为什么您成功地执行了0个SQL语句中的0个。。您已将sqlCommand配置为执行块的一部分,而不是常规配置,因此SQL:exec
无法工作。我想您确实需要第二段和第三段来修复它。哦……这是一个新手犯的错误。我很惭愧。修正排版有帮助。谢谢。