2009-12-16 39 views
6

Khi tôi chạy "mvn install site-deploy" gần đây trong bản dựng, tôi nhận được lỗi sau liên tục. Tôi không thể tìm ra điều gì sai vì tôi đã thay thế bản repo m2 đã thử một số bản dựng sạch. Ai đó có thể cho tôi một gợi ý mà tôi có thể tìm ra một giải pháp. Tôi đã cố gắng googling nhưng không thể đi qua một cái gì đó có liên quan. Cảm ơn.Lỗi xây dựng triển khai trang web 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 

Version Information: jdk1.6.0_14, apache-maven-2.1.0

+0

Tôi gặp lỗi tương tự và được giải quyết bằng cách cài đặt phiên bản Maven mới. http://maven.apache.org/download.html –

Trả lời

1

Tôi thấy rằng bạn đang sử dụng báo cáo Emma. Có lẽ nó là một vấn đề với phụ thuộc trong plugin này. Lớp học bị thiếu phải ở dạng trang trí maven-plugin-api.

Hãy thử trước tiên để nhận xét báo cáo Emma, ​​nếu điều đó giúp thử sử dụng phiên bản antoher của plugin này hoặc sửa lỗi bằng cách thêm phụ thuộc thích hợp vào your pom - trong trường hợp của bạn là maven-plugin-api.

+0

cảm ơn bạn về mẹo này, tôi sẽ thử điều này và kiểm tra xem nó có giải quyết được vấn đề hay không. – sanjayav

1

Trước tiên, nếu có thể, hãy sử dụng phiên bản mới nhất của Maven (2.2.1), siêu pom của nó sẽ chứa phiên bản mới có thể giải quyết được sự cố của bạn. Sau đó cố gắng buộc một bản cập nhật Plugin sử dụng - cpu tức là:

mvn -cpu site

Nếu bạn đang sử dụng ảnh chụp nhanh sau đó cũng thêm -U. Cuối cùng, nếu bạn đóng băng các phiên bản plugin trong dự án của mình, hãy thử cập nhật chúng. Nếu vẫn thất bại sau đó hãy xem tại pom hiệu quả (mvn giúp đỡ: hiệu quả-pom) để xem những gì các phiên bản được Bing sử dụng, sau đó google cho lỗi

+0

cảm ơn bạn về mẹo này, tôi sẽ thử điều này và kiểm tra xem nó có giải quyết được vấn đề không. – sanjayav

1

này nên làm việc với Maven 2.1.0 (thậm chí nếu nâng cấp sẽ là một ý tưởng tốt). Hãy thử sử dụng một phiên bản mới hơn của plugin trong POM của bạn bằng cách thiết lập một cách rõ ràng phiên bản (bạn nên sử dụng phiên bản cố định anyway):

<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

Chúng tôi vừa chạy vào vấn đề này rất mặc dù với org.apache.felix : maven-bundle-plugin.

vấn đề của chúng tôi bắt nguồn từ thực tế là chúng tôi đã không chỉ định một phiên bản plugin trong pom.xml:

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

Đây là tất cả tốt và tốt và tất cả mọi thứ đã làm việc với (sau đó) phiên bản mới nhất của plugin tức là 2.3.4.

Tuy nhiên, khi một phiên bản mới của các plugin đã trở thành có sẵn trên kho Maven bên ngoài (phiên bản 2.3.5) chúng tôi đã nhận được lỗi sau:

... 
[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] 
... 

Chúng tôi giải quyết vấn đề này bằng cách nói một cách rõ ràng phiên bản của plugin trong pom.xml của chúng tôi:

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

Hy vọng điều này sẽ hữu ích.

Các vấn đề liên quan