我正在尝试使用hibernate3 maven插件和sql maven插件。我的目标是我可以运行“maven generate sources”,它应该做到:
1) hibernate3 maven插件生成初始化。sql
2) sql maven插件执行它(一个其他脚本)
我的配置的问题是:如果我运行生成源只有hibernate3-maven-plugin它的工作原理和生成thinit.sql但我尝试运行两个插件它将运行sql-maven-plugin第一
并以一个错误结束:
Caused by: org.apache.maven.plugin.MojoExecutionException: /my/path/src/main/resources/sql/init.sql not found.
这是我的插件配置:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>3.0</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.13</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>create-script</id>
<phase>generate-sources</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
<configuration>
<hibernatetool destdir="${project.basedir}/src/main/resources/sql/">
<classpath>
<path location="${project.basedir}/src/main/java" />
</classpath>
<configuration
configurationfile="${project.basedir}/src/main/resources/hibernate/hibernate-mysql.cfg.xml" />
<hbm2ddl create="true" drop="true" export="false"
outputfilename="init.sql" format="true" console="true" />
</hibernatetool>
</configuration>
</execution>
</executions>
</plugin>
<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.13</version>
</dependency>
</dependencies>
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost/MYDB</url>
<username>root</username>
<password>root</password>
</configuration>
<executions>
<execution>
<id>init-db</id>
<phase>generate-sources</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/main/resources/sql/init.sql</srcFile>
<srcFile>src/main/resources/sql/insertMessages.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
使现代化
事实上,我不想在构建过程中运行sql。我只想为其他开发人员设置一种简单的方法,将他们的db重置为最新的db模式,并填充testData。最后,我应该像这样运行mvn:mvn hibernate3:hbm2ddl sql:execute
执行这两个插件
我试图删除<代码>
ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:3.0:hbm2ddl (default-cli) on project DideuroDb: There was an error creating the AntRun task. NullPointerException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:3.0:hbm2ddl (default-cli) on project myProject: There was an error creating the AntRun task.
更新2
这样的配置效果更好一些:
它生成init.sql但不执行任何操作:
[INFO] 0 of 0 SQL statements executed successfully
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
配置更新:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>3.0</version>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.13</version>
</dependency>
</dependencies>
<configuration>
<hibernatetool destdir="${project.basedir}/src/main/resources/sql/">
<classpath>
<path location="${project.basedir}/src/main/java" />
</classpath>
<configuration
configurationfile="${project.basedir}/src/main/resources/hibernate/hibernate-mysql.cfg.xml" />
<hbm2ddl create="true" drop="true" export="false"
outputfilename="init.sql" format="true" console="true" />
</hibernatetool>
</configuration>
</plugin>
<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.13</version>
</dependency>
</dependencies>
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost/MYDB</url>
<username>root</username>
<password>root</password>
</configuration>
<executions>
<execution>
<id>init-db</id>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/main/resources/sql/init.sql</srcFile>
<srcFile>src/main/resources/sql/insertMessages.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
由于您不想将执行作为常规构建的一部分来运行,但为了方便开发人员,请使用默认的cli“魔术”执行标识(请参见https://maven.apache.org/guides/mini/guide-default-execution-ids.html)。因此,在执行中既不包括阶段也不包括目标,并将其命名为“默认的cli”。这样,它的配置仅在手动调用mvn hibernate3: hbm2ddl sql:执行
时使用:
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>3.0</version>
<dependencies>
...
</dependencies>
<executions>
<execution>
<id>default-cli</id>
<configuration>
...
</configuration>
<execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>sql-maven-plugin</artifactId>
<version>1.5</version>
<dependencies>
...
</dependencies>
<configuration>
<driver>com.mysql.jdbc.Driver</driver>
<url>jdbc:mysql://localhost/MYDB</url>
<username>root</username>
<password>root</password>
</configuration>
<executions>
<execution>
<id>default-cli</id>
<configuration>
<autocommit>true</autocommit>
<srcFiles>
<srcFile>src/main/resources/sql/init.sql</srcFile>
<srcFile>src/main/resources/sql/insertMessages.sql</srcFile>
</srcFiles>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
这样,您的“手动”目标配置将永远不会干扰一些正常的生命周期配置。
还有两点:
我一直在绞尽脑汁研究maven插件的执行顺序和生成类的打包。 我需要从XSD生成带有注释的pojos,为此我使用maven-jaxb2-plugin,它消耗一个binding.xjb(一个由要注释的完全分类的字段名组成的xml文件)文件并将注释添加到生成的pojos。除此之外,我还有一个从映射文件动态生成binding.xjb文件的机制,目的是只提供yaml文件格式的映射,而不是binding.x
使用统一的控制脚本来初始化其他脚本 一般我都会有一个 Game.ts 的脚本作为总的控制脚本,假如我还有 Player.ts, Enemy.ts, Menu.ts 三个组件,那么他们的初始化过程是这样的: // Game.ts import { _decorator, Component, Node } from "cc"; const { ccclass, property } = _decor
Hprose 中间件的顺序执行是按照添加的前后顺序执行的,假设添加的中间件处理器分别为:handler1, handler2 … handlerN,那幺执行顺序就是 handler1, handler2 … handlerN。 不同类型的 Hprose 中间件和 Hprose 其它过程的执行流程如下图所示: +--------------------------------------------
问题内容: 我试图理解这段代码,不确定为什么第二遍在第一遍之前执行。如果有人真的可以帮助我,那就太好了! 输出: 问题答案: 您没有任何内容可以显式同步两个goroutine的顺序。如果运行足够的时间,您将看到调用以不同的顺序进行打印。当执行goroutine时,由于它们是并发操作,因此无法保证它们将何时执行和/或完成。您需要使用各种标准库程序包或通道本身来同步并发运行的goroutine的执行。
关于此代码段,我有一个问题要问您: 上面的脚本应该这样做: 设置位置哈希为 在任何进一步的变化- 这就是问题所在:为什么在第一次执行时调用?这个脚本不应该只更改哈希而不更改任何警报吗? 我如何修复它,使其按描述工作?
类D 主要方法是 Bean配置文件是 程序的输出为: