2011-11-27 2 views
0

새 프로젝트 작업 크롤링을 진행하는 주요로드 블록으로 실행되었습니다. 내 프로젝트에 대해서는 조금 ... 과 같이 주석을 검색하여 그에 따라 Android 특정 코드를 빌드하는 주석 처리 도구입니다.Maven 오류 : 주석 프로세서 라이브러리를 사용하여 빌드 할 때 OpenListResourceBundle에 액세스 할 수 없습니다.

오류는 Java6 주석 처리 인 Android API 및 Maven과 관련되어있는 것으로 보이며 처리 된 클래스에 선언 된 Android API의 유형 인스턴스가있을 때만 나타납니다. 여기

... 
[INFO] Compiling 5 source files to /mnt/hd1/home/john/dev/robotics-project/examples/simple/target/classes 
[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
error: cannot access sun.util.resources.OpenListResourceBundle 

    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) 
    at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60) 
    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: org.apache.maven.plugin.CompilationFailureException: Compilation failure 
error: cannot access sun.util.resources.OpenListResourceBundle 

    at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:656) 
    at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128) 
    at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490) 
    at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694) 
... 17 more 
[INFO] 1 error 
[INFO] ------------------------------------------------------------- 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Compilation failure 
error: cannot access sun.util.resources.OpenListResourceBundle 

내 코드에 대한 저장소입니다 : https://github.com/johncarl81/robotics

이 오류를 재현 다음과 TestController.java를 교체하려면 :

public class TestController { 

    @Inject 
    private SubComponent subComponent; 
    @Inject 
    private Activity activity; 
    public boolean validate() { 
     return subComponent != null && activity != null; 
    } 

} 
여기 내 라이브러리를 포함하는 경우에 나는 실행하고 오류입니다

그런 다음 실행하여 루트에서 프로젝트를 빌드 :

mvn clean install 

sun.util.resources.OpenListResourceBundle은 클래스 경로에서 사용할 수 있습니다. 우분투 환경에서 java 1.6.0_26을 실행하고 있습니다. 여러 우분투 컴퓨터뿐만 아니라 정확히 동일한 문제가있는이 시도했다.

무엇을 시도할지에 대한 도움이나 아이디어는 높이 평가됩니다.

답변

0

이 질문을 한 후에 나는 드로잉 보드로 돌아가서 주석 처리 단계에서 일어나는 모든 것을 보았습니다. Android.app.Activity 클래스와 관련 클래스 (매개 변수 유형 등)가 모두 내 라이브러리에서 분석되고 있다는 것을 알았습니다. 이것은 주석 처리기가 언급 한 rt.jar 클래스를 포함하는 것으로 보이는 클래스에 대한 일종의 검토를 트리거 한 것으로 보입니다. 이로 인해 컴파일러에서 해당 클래스에 액세스 할 수 없으므로 오류가 발생했습니다.

해결책은 주석 처리 단계에서 관련없는 클래스의 분석을 다듬는 것이 었습니다.

희망 사항은 향후이 문제를 겪을 수있는 사람을 돕습니다 (가능성은 낮지 만).

관련 문제