gpt4 book ai didi

maven sql plugin 0 of 0 SQL statements 成功执行

转载 作者:行者123 更新时间:2023-12-05 01:07:13 25 4
gpt4 key购买 nike

我想要的是能够从 maven 创建/删除数据库(如果可能的话)。我找到了 maven sql 插件,但无法理解如何,例如,创建 db。不知何故,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>

最佳答案

您的其中一个 URL 中存在拼写错误,postgressql必须是 postgresql .

当您运行时 mvn sql:execute它只是获取插件配置,而不是插件执行,除非你给它 id default-cli (你的刚刚 default )。

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

你其实可以CREATEDROP使用此插件的数据库。我已经完成并广泛使用它进行单元测试。我们经历了四个阶段:

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

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

    关于maven sql plugin 0 of 0 SQL statements 成功执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18866774/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com