2012-04-21 61 views
2

我使用Eclipse Indigo和M2Eclipse 1.0.200.20111228-1245,我想用hibernate3-maven-plugin版本3.0來生成我的數據庫模式Hibernate配置文件和映射文件。這是我的pom.xml中的插件xml片段。hibernate3-maven-plugin 3.0在Eclipse中使用m2eclipse運行良好,但使用獨立maven失敗

<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>hbm2ddl</goal> 
      </goals> 
      <configuration> 
       <components> 
        <component> 
         <name>hbm2ddl</name> 
         <implementation>configuration</implementation> 
        </component> 
       </components> 
       <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> 
</plugin> 

利用上面的配置,我可以運行在Eclipse中一個「Maven構建」與m2eclipse的(嵌入的Maven 3.0.2)和目標「過程檢驗資源」就好了。但是,當我試圖用獨立的Maven(3.0.4)上運行,我遇到這樣

[ERROR] Failed to execute goal org.codehaus.mojo:hibernate3-maven-plugin:3.0:hbm2ddl (default-cli) on project amlbs: 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 amlbs: There was an error creating the AntRun task. 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    at java.lang.reflect.Method.invoke(Method.java:597) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: org.apache.maven.plugin.MojoExecutionException: There was an error creating the AntRun task. 
    at org.codehaus.mojo.hibernate3.AbstractHibernateMojo.execute(AbstractHibernateMojo.java:84) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
    ... 19 more 
Caused by: java.lang.NullPointerException 
    at org.codehaus.plexus.configuration.DefaultPlexusConfiguration.add(DefaultPlexusConfiguration.java:170) 
    at org.codehaus.plexus.configuration.DefaultPlexusConfiguration.addChild(DefaultPlexusConfiguration.java:146) 
    at org.codehaus.mojo.hibernate3.util.PlexusConfigurationUtils.setHibernateConfiguration(PlexusConfigurationUtils.java:289) 
    at org.codehaus.mojo.hibernate3.util.PlexusConfigurationUtils.parseHibernateTool(PlexusConfigurationUtils.java:67) 
    at org.codehaus.mojo.hibernate3.AbstractHibernateToolMojo.getConfiguration(AbstractHibernateToolMojo.java:60) 
    at org.codehaus.mojo.hibernate3.AbstractHibernateMojo.execute(AbstractHibernateMojo.java:76) 
    ... 21 more 
[ERROR] 
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles: 
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

任何幫助外,將不勝感激!

+0

不是一個修辭問題:「組件」仍然與插件的3.0相關嗎? – 2013-09-09 09:34:21

回答

0

如果有任何幫助,這裏是hibernate3-maven-plugin版本3.0的工作配置。它正在發射hbm2java(你的問題是針對hbm2ddl),但無論如何,特別是在沒有其他人正在回答(尚未)的時候,它似乎很有用。

<configuration> 
    <hibernatetool> 
     <classpath> 
      <path location="${project.build.testOutputDirectory}" /> 
     </classpath> 
     <jdbcconfiguration 
      propertyfile="${basedir}/jpa-reveng/hibernate.properties" 
      revengfile="${basedir}/jpa-reveng/hibernate.reveng.xml" 
      reversestrategy="com.package.MyReverseEngineeringStrategy" /> 
     <hbm2java jdk5="true" ejb3="true" 
      destdir="${project.build.sourceDirectory}" /> 
    </hibernatetool> 
</configuration> 
相關問題