2013-07-11 5 views
0

the Maven plugin을 사용하여 새 언어 용 NetBeans 플러그인을 구축하고 있습니다. 나는 (대략) this tutorial을 뒤쫓아 왔지만, 결국 컴파일이 불가능해진다. (스택 트레이스).Maven의 NetBeans 새로운 언어 지원

표준 (Ant 기반) NetBeans 모듈 프로젝트와 동일한 코드 및 모듈 종속성을 사용하여 올바르게 컴파일됩니다. 발견 할 수없는 클래스는 다른 모듈 (org-netbeans-modules-editor-codetemplates)에서 사용할 수있는 것처럼 보이지만 Ant 기반 프로젝트를 사용할 때는 그 모듈이 필요하지 않습니다. 또한 해당 모듈을 추가하면 다른 모듈에서 찾을 수없는 다른 클래스에 대해 비슷한 오류가 발생합니다. 이는 내가 잘못한 일을하게 만듭니다. 내가 놓친 게 있니?

스택 추적 :

[INFO] ------------------------------------------------------------- 
[ERROR] COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] Failure executing javac, but could not parse the error: 


An annotation processor threw an uncaught exception. 
Consult the following stack trace for details. 
java.lang.NoClassDefFoundError: org/netbeans/lib/editor/codetemplates/CodeTemplateCompletionProvider 
    at org.netbeans.modules.csl.core.LanguageRegistrationProcessor.registerCodeCompletion(LanguageRegistrationProcessor.java:270) 
    at org.netbeans.modules.csl.core.LanguageRegistrationProcessor.handleProcess(LanguageRegistrationProcessor.java:160) 
    at org.openide.filesystems.annotations.LayerGeneratingProcessor.process(LayerGeneratingProcessor.java:121) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:793) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:722) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1700(JavacProcessingEnvironment.java:97) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1029) 
    at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1163) 
    at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1108) 
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:824) 
    at com.sun.tools.javac.main.Main.compile(Main.java:439) 
    at com.sun.tools.javac.main.Main.compile(Main.java:353) 
    at com.sun.tools.javac.main.Main.compile(Main.java:342) 
    at com.sun.tools.javac.main.Main.compile(Main.java:333) 
    at com.sun.tools.javac.Main.compile(Main.java:94) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess0(JavacCompiler.java:551) 
    at org.codehaus.plexus.compiler.javac.JavacCompiler.compileInProcess(JavacCompiler.java:526) 
    at org.codehaus.plexus.compiler.javac.JavacCompiler.compile(JavacCompiler.java:167) 
    at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:678) 
    at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:128) 
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) 
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) 
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) 
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) 
    at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) 
    at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) 
    at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) 
    at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) 
    at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) 
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) 
Caused by: java.lang.ClassNotFoundException: org.netbeans.lib.editor.codetemplates.CodeTemplateCompletionProvider 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 45 more 

내 종속

<!-- Common Scripting Language API (new) --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-netbeans-modules-csl-api</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Datasystems API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-loaders</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Dialogs API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-dialogs</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- File System API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-filesystems</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Lexer API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-netbeans-modules-lexer</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Lookup API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-util-lookup</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Nodes API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-nodes</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Text API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-text</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- UI Utilities API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-awt</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Utilities API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-util</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <!-- Window System API --> 
    <dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-openide-windows</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 

답변

3

당신은 아마 플랫폼의 유물에 대한 Maven의 pom.xml 파일의 생성에서 발견 오류가 있습니다. org-netbeans-modules-csl-api jar에는 codetemplates 모듈 (org.netbeans.modules.editor.codetemplates/1 = 1)에 대한 모듈 종속성이 포함되어 있지만 해결 된 종속성 목록에는 없습니다. https://netbeans.org/bugzilla 구성 요소에 문제를 제기하십시오. apisupport subcomponent : maven.

감사합니다.

추신 : 해결 방법은 실제로 시도했지만 완료하지 않은 경로입니다. 주석 처리기의 런타임 의존성이 충족 될 때까지 누락 된 종속성을 계속 추가하십시오. (넷빈즈 7.3.1에 대한) 요구

종속성은 다음과 같습니다

<dependency> 
     <groupId>org.netbeans.api</groupId> 
     <artifactId>org-netbeans-modules-editor-codetemplates</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.netbeans.modules</groupId> 
     <artifactId>org-netbeans-modules-editor-errorstripe</artifactId> 
     <version>${netbeans.version}</version> 
    </dependency> 
+0

감사합니다. 위의 종속성을 추가하면 해결됩니다. 버그 : https://netbeans.org/bugzilla/show_bug.cgi?id=232648 – Daniel