2012-02-14 14 views
12

私は新しいバージョンのhibernate3-maven-pluginに更新しました。私は以下のエラーを受けて、下記のプラグインを使用しようとしています。hibernate3-maven-plugin-3.0を使用してhbm2ddlを生成できません

この問題を解決するための参考になります。

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>hibernate3-maven-plugin</artifactId> 
    <version>3.0</version> 

    <executions> 
     <execution> 
      <id>create sql schema</id> 
      <phase>process-test-resources</phase> 
      <goals> 
       <goal>hbm2ddl</goal> 
      </goals> 
      <configuration> 
       <componentProperties> 
        <persistenceunit>${app.module}</persistenceunit> 
        <drop>false</drop> 
        <create>true</create> 
        <outputfilename>${app.sql}-create.sql</outputfilename> 
        <skip>${db.schema.gen.skip}</skip> 
       </componentProperties> 
      </configuration> 
     </execution> 

     <execution> 
      <id>drop sql schema</id> 
      <phase>process-test-resources</phase> 
      <goals> 
       <goal>hbm2ddl</goal> 
      </goals> 
      <configuration> 
       <componentProperties> 
        <persistenceunit>${app.module}</persistenceunit> 
        <drop>true</drop> 
        <create>false</create> 
        <outputfilename>${app.sql}-drop.sql</outputfilename> 
        <skip>${db.schema.gen.skip}</skip> 
       </componentProperties> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:3.0:hbm2ddl (create sql schema) on project sample: 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 (create sql schema) on project framework: There was an error creating the AntRun task. 

答えて

12

構成の方法は、アリ休止ツールプラグインの直接使用に変化しました。したがって、構成はantプラグインのような形式と全く同じです。 jpaconfiguration。詳細については、hibernate ant tool references documentation:http://docs.jboss.org/tools/3.3.0.Final/en/hibernatetools/html_single/index.html#d0e4651を参照してください。あなたは以下のように使用することができ、JPA構成でhbm2ddlについては

:障害で

<plugin> 
    <!-- run "mvn hibernate3:hbm2ddl" to generate a schema --> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>hibernate3-maven-plugin</artifactId> 
    <version>3.0</version> 

    <configuration> 
     <hibernatetool> 
      <jpaconfiguration persistenceunit="unitname" /> 

      <hbm2ddl export="false" create="true" 
       update="true" format="true" outputfilename="schemaDiff.ddl" /> 

     </hibernatetool> 
    </configuration> 
</plugin> 

Hibernateツールを設定する「ターゲット/ antrun /ビルドmain.xml」のファイルがあります。上記の例では、これは次のようになります。

<?xml version="1.0" encoding="UTF-8" ?> 
<project name="maven-antrun-" default="main" > 
<target name="main"> 
    <taskdef classname="org.hibernate.tool.ant.EnversHibernateToolTask" name="hibernatetool"/> 
    <mkdir dir="/home/xxx/workspace/projectname/target/sql/hibernate3"/> 
    <hibernatetool destdir="/home/xxx/workspace/projectname/target/sql/hibernate3"> 
    <jpaconfiguration persistenceunit="schemaDiff"/> 
    <hbm2ddl update="true" export="false" outputfilename="schemaDiff.ddl" format= 
"true" create="true"/> 
    </hibernatetool> 
</target> 
</project> 
+1

これはまだ違いはないようですが、以前と同じエラーが発生しています。 –

+0

関連するデバッグメッセージは、この問題を解決するためのヒントを提供します。単に "-X"または "-debug"をmavenコマンドに追加してください。 – Kuhpid

+1

http://pastebin.com/2QLFjp4q - ここをクリック –

3

私はこれと同じ問題があったが、最終的にそれが(http://www.celinio.net/techblog/?p=1125)この例に従うことによって、単独でのプラグインのための休止状態DEPSを指定することで解決しました。これは、私の場合、JPA2(特定の休止状態の参照がない)のみを使用する別個のドメインオブジェクトモジュールを持っているため、DDL生成のためにdepsを取り込む必要があったため、このモジュールの依存関係に影響を与えることはありません。

<plugin> 
<groupId>org.codehaus.mojo</groupId> 
<artifactId>hibernate3-maven-plugin</artifactId> 
<version>3.0</version> 
<executions> 
    <execution> 
     <id>create-schema</id> 
     <phase>process-test-resources</phase> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     <configuration> 
      <hibernatetool destdir="${project.basedir}"> 
       <classpath> 
        <path 
         location="${project.basedir}/src/main/resources/mappings/" /> 
       </classpath> 
       <configuration 
        configurationfile="${project.basedir}/src/test/resources/hibernate.cfg.xml" /> 
       <hbm2ddl create="true" export="false" 
        drop="true" outputfilename="schema.sql" 
        format="true" console="false" /> 
      </hibernatetool> 
     </configuration> 
    </execution> 
</executions> 

基本的な考え方は、あなたが望む輸出を実行するための目標「実行」を使用し、hibernatetoolを設定することです:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>hibernate3-maven-plugin</artifactId> 
      <version>3.0</version> 
      <configuration> 
       <components> 
        <component> 
         <name>hbm2ddl</name> 
         <implementation>jpaconfiguration</implementation> 
        </component> 
       </components> 
       <hibernatetool> 
        <classpath> 
         <path location="${project.build.directory}/classes" /> 
         <path location="${project.basedir}/src/main/resources/META-INF/" /> 
        </classpath> 
        <jpaconfiguration persistenceunit="Configuration" /> 
        <hbm2ddl create="true" export="false" drop="true" 
         outputfilename="configuration.sql" format="true" console="true" /> 
       </hibernatetool> 
      </configuration> 
      <dependencies> 
       <dependency> 
        <groupId>org.hibernate.javax.persistence</groupId> 
        <artifactId>hibernate-jpa-2.0-api</artifactId> 
        <version>1.0.0.Final</version> 
       </dependency> 
       <dependency> 
        <groupId>org.hibernate</groupId> 
        <artifactId>hibernate-entitymanager</artifactId> 
        <version>3.6.7.Final</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 
</build> 
+2

このソリューションは、私が追加した後に私のために働いた hibernate-jpa-2.0-api:1.0.0.Final、hibernate-entitymanager:3.6.8.Final、hibernate-core:3.6.8.Final、hibernate-validator:4.2。依存関係の最後 –

3

私はそれは、次のように動作させる必要があります。したがって、複数の輸出業者をタグ内にさらに輸出業者の設定を追加することで、一度に複数の輸出業者を実行することができます。詳細については、http://docs.jboss.org/tools/2.0.0.GA/hibernatetools/en/html_single/index.htmlhttp://mojo.codehaus.org/hibernate3-maven-plugin/examples/run-multiple-goals.htmlをご覧ください。 これは数時間でわかりました。それは助けて欲しい!