2009-12-16 88 views
6

当我在build中最近运行“mvn install site-deploy”时,我不断得到以下错误。我无法弄清楚有什么不对,因为我已经用 替换了m2回购也尝试了几个干净的版本。有人能给我一个提示,我可以找到解决方案。我尝试了谷歌搜索,但不能 遇到相关的东西。谢谢。Maven站点部署生成错误

FATAL ERROR] org.apache.maven.plugins.site.SiteMojo#execute() caused a linkage error (java.lang.NoClassDefFoundError) and may be out-of-date. Check the realms: 
[FATAL ERROR] Plugin realm = app0.child-container[org.apache.maven.plugins:maven-site-plugin:2.0-beta-7] 
...... 
[FATAL ERROR] Container realm = plexus.core 
....... 
[INFO] ------------------------------------------------------------------------ 
[ERROR] FATAL ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] org/apache/maven/plugin/logging/Log 
org.apache.maven.plugin.logging.Log 
[INFO] ------------------------------------------------------------------------ 
[INFO] Trace 
java.lang.NoClassDefFoundError: org/apache/maven/plugin/logging/Log 
    at org.codehaus.mojo.emma.EmmaReportMojo.canGenerateReport(EmmaReportMojo.java:319) 
    at org.apache.maven.plugins.site.AbstractSiteRenderingMojo.filterReports(AbstractSiteRenderingMojo.java:177) 
    at org.apache.maven.plugins.site.SiteMojo.execute(SiteMojo.java:81) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:540) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:519) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:356) 
    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.classworlds.Launcher.launchEnhanced(Launcher.java:315) 
    at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) 
    at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) 
    at org.codehaus.classworlds.Launcher.main(Launcher.java:375) 
Caused by: java.lang.ClassNotFoundException: org.apache.maven.plugin.logging.Log 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at org.codehaus.classworlds.RealmClassLoader.loadClassDirect(RealmClassLoader.java:195) 
    at org.codehaus.classworlds.DefaultClassRealm.loadClass(DefaultClassRealm.java:255) 
    at org.codehaus.classworlds.RealmClassLoader.loadClass(RealmClassLoader.java:214) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:252) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 
    ... 21 more 

版本信息: jdk1.6.0_14,Apache的行家-2.1.0

+0

我得到了同样的错误,并通过安装新版本的Maven解决。 http://maven.apache.org/download.html – 2011-06-09 02:42:59

回答

1

我看到你正在使用艾玛报告。也许这是这个插件中的依赖问题。失踪类应该在maven-plugin-api神器中。

尝试先注释掉Emma报告,如果这有助于尝试使用此插件的antoher版本或通过在your pom中添加适当的依赖项来修复它 - 在您的示例中为maven-plugin-api。

+0

谢谢你的提示,我会试试看,并检查它是否解决了这个问题。 – sanjayav 2009-12-16 17:20:50

1

首先,如果可能,然后使用最新版本的Maven(2.2.1),它的超级pom将正确包含可能解决您的问题的新版本。然后尝试强制使用插件更新 - CPU即:

mvn -cpu site

如果使用快照,然后还加-U。最后,如果您冻结项目中的插件版本,请尝试更新它们。如果一切都失败了再看看在有效POM(MVN帮助:有效-POM)看到的冰用什么版本的,那么谷歌的错误

+0

谢谢你的提示,我会试试看,并检查它是否解决了这个问题。 – sanjayav 2009-12-16 17:18:35

1

应该与Maven 2.1.0工作(甚至如果升级将是一个好主意)。尝试通过显式设置的版本在你的POM使用该插件的最新版本(你无论如何都应该使用固定版本):

<project> 
    ... 
    <build> 
    <!-- To define the plugin version in your parent POM --> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-site-plugin</artifactId> 
      <!-- Lock down plugin version for build reproducibility --> 
      <version>2.0.1</version> 
     </plugin> 
     ... 
     </plugins> 
    </pluginManagement> 
    <!-- To use the plugin goals in your POM or parent POM --> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-site-plugin</artifactId> 
     </plugin> 
     ... 
    </plugins> 
    </build> 
    ... 
</project> 
2

我们正好碰上这个问题非常尽管与org.apache.felix :行家束的插件。

我们的问题基于这样的事实,我们没有指定的pom.xml中的插件版本:

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
</plugin> 

这一切都很好,一切都与插件的(当时)最新版本的工作即2.3.4。

然而,当插件的新版本对外部的Maven仓库面世(2.3.5版本),我们得到了以下错误:

... 
[FATAL ERROR] org.apache.felix.bundleplugin.BundlePlugin#execute() caused a linkage error (java.lang.NoSuchMethodError) and may be out-of-date. Check the realms: 
[FATAL ERROR] Plugin realm = app0.child-container[org.apache.felix:maven-bundle-plugin:2.3.5] 
... 

我们通过显式声明的版本解决了这个问题插件在我们的pom.xml中:

<plugin> 
    <groupId>org.apache.felix</groupId> 
    <artifactId>maven-bundle-plugin</artifactId> 
    <version>2.3.4</version> 
</plugin> 

希望这会有所帮助。