Ошибка сборки Maven для сайта - PullRequest
6 голосов
/ 16 декабря 2009

Когда я в последнее время запускаю mvn install site-deploy в сборке, я постоянно получаю следующую ошибку Я не могу понять, что не так, как я заменил репо м2 и попробовал несколько чистых билдов. Может ли кто-нибудь дать мне подсказку, где я могу найти решение? Я пытался гуглить, но не мог наткнуться на что-то актуальное. Спасибо.

 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, апач-Maven-2.1.0

Ответы [ 4 ]

2 голосов
/ 13 июля 2011

Мы только что столкнулись с этой проблемой, хотя и с 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 голос
/ 16 декабря 2009

Сначала, если возможно, затем используйте последнюю версию Maven ( 2.2.1 ), его супер-помпа будет правильно содержать новые версии, которые могут решить вашу проблему. Затем попробуйте принудительно обновить плагин, используя - cpu т.е.:

mvn -cpu site

Если вы используете снимки, добавьте также -U . Наконец, если вы заморозили версии плагинов в своем проекте, попробуйте обновить их. Если ничего не помогает, взгляните на эффективный pom ( mvn help :ffective-pom ), чтобы узнать, какие версии используются в bing, а затем найдите ошибки в Google

1 голос
/ 17 декабря 2009

должно работать с 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>
1 голос
/ 16 декабря 2009

Я вижу, что вы используете отчет Эммы. Может быть, это проблема с зависимостями в этом плагине. Недостающий класс должен быть в артефакте maven-plugin-api .

Попробуйте сначала закомментировать отчет Эммы, если это поможет попытаться использовать другую версию этого плагина или исправить ее, добавив соответствующую зависимость в ваш pom - в вашем случае maven-plugin-api.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...