我想在我的一个项目中使用Hibernate3 maven插件。但是,因为m2e没有生命周期配置器,我需要配置生命周期插件来忽略插件执行。但是,我也使用了m2e AFAIK也不支持的maven依赖插件。
因此,我的生命周期插件的配置是:
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<versionRange>[2.0,)</versionRange>
<goals>
<goal>copy-dependencies</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<versionRange>[3.0,)</versionRange>
<goals>
<goal>hbm2ddl</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
问题在于,当我在项目中使用Hibernate3插件时,我收到错误“插件执行未被生命周期配置覆盖:org.codehaus.mojo:hibernate3-maven-plugin:3.0:hbm2ddl(执行:schema-生成,阶段:流程类)“在线。请注意,我在使用maven依赖插件的行中没有出现此错误。
有什么想法吗?
由于
编辑: Hibernate3插件的hbm2ddl目标是绑定到进程类阶段。我已经将阶段改为打包(只是为了尝试)而且我没有得到错误。任何解释? hbm2ddl目标应该绑定到哪个阶段?
答案 0 :(得分:1)
您必须添加一个阶段,这意味着您必须增强您的配置,如下所示:
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<versionRange>[3.0,)</versionRange>
<phase>process-classes</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
</pluginExecutionFilter>