Maven站点部署构建错误

时间:2009-12-16 09:53:59

标签: maven-2

当我最近在构建中运行“mvn install site-deploy”时,我不断得到以下错误。我无法弄清楚我的错误 取代m2 repo也尝试了几个干净的版本。有人可以给我一个提示,我可以找到解决方案。我试过谷歌搜索但不能 遇到相关的事情。感谢。

 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

4 个答案:

答案 0 :(得分:2)

我们刚刚遇到了这个问题,尽管使用了org.apache.felix:maven-bundle-plugin。

我们的问题源于我们没有在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>

希望这有帮助。

答案 1 :(得分:1)

我看到你正在使用艾玛报告。也许这个插件中的依赖项存在问题。缺少的类应该在maven-plugin-api工件中。

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

答案 2 :(得分:1)

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

  

mvn -cpu site

如果您使用快照,则还要添加 -U 。最后,如果您冻结项目中的插件版本,请尝试更新它们。如果所有其他方法都失败了,那么看一下有效的pom( mvn help:effective-pom )来查看使用的版本是什么,然后google for bugs

答案 3 :(得分: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>