gpt4 book ai didi

java - 在Liferay 6.1 SDK中使用ant构建时发生内部编译器错误

转载 作者:行者123 更新时间:2023-12-02 11:02:34 24 4
gpt4 key购买 nike

当我尝试在6.1.10中编译portlet插件时,我面临一个奇怪的问题。

该插件的第一个版本没有任何问题,已在SVN中提交。我对该插件做了一个分支,并对Java文件进行了一些更改,从那时起,我无法从提示符下对其进行编译(在Liferay Studio 2.2.x中,它可以正确编译)。

因此,现在我在同一个SDK中拥有同一个插件的两个版本,但是第一个版本可以正常编译,第二个版本具有以下错误:

[javac] 1. ERROR in /XXXX/liferay-plugins-sdk-6.1.10-ee-ga1/portlets/XXXX-portlet/docroot/WEB-INF/src/XXXX/ObjectFactory.java (at line 0)
[javac]
[javac] ^
[javac] Internal compiler error
[javac] java.lang.NullPointerException
[javac] at org.eclipse.jdt.internal.compiler.ast.SingleTypeReference.getTypeBinding(SingleTypeReference.java:44)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeReference.internalResolveType(TypeReference.java:130)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:197)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeReference.resolveType(TypeReference.java:193)
[javac] at org.eclipse.jdt.internal.compiler.ast.Annotation.resolveType(Annotation.java:231)
[javac] at org.eclipse.jdt.internal.compiler.ast.ASTNode.resolveAnnotations(ASTNode.java:594)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.resolveAnnotations(AnnotationDiscoveryVisitor.java:143)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor.visit(AnnotationDiscoveryVisitor.java:131)
[javac] at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1198)
[javac] at org.eclipse.jdt.internal.compiler.ast.CompilationUnitDeclaration.traverse(CompilationUnitDeclaration.java:687)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.RoundEnvImpl.<init>(RoundEnvImpl.java:56)
[javac] at org.eclipse.jdt.internal.compiler.apt.dispatch.BaseAnnotationProcessorManager.processAnnotations(BaseAnnotationProcessorManager.java:148)
[javac] at org.eclipse.jdt.internal.compiler.Compiler.processAnnotations(Compiler.java:794)
[javac] at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:423)
[javac] at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(Main.java:3543)
[javac] at org.eclipse.jdt.internal.compiler.batch.Main.compile(Main.java:1645)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[javac] at java.lang.reflect.Method.invoke(Method.java:597)
[javac] at org.eclipse.jdt.core.JDTCompilerAdapter.execute(JDTCompilerAdapter.java:79)

我检查了两个构建的类路径,它们与插件文件夹的名称相同。由于它们是在相同的SDK中构建的,因此它们使用的是相同的Java,相同的编译器,门户等。Java版本为1.6.0_65,但该问题也可以在不同的机器上重现。

另外,在两个项目中,编译失败的类是相同的。

提前致谢。

最佳答案

似乎liferay 6.1.10 SDK使用的是非常旧的ecj.jar(版本3.4.1)。我从ant lib目录(由liferay sdk复制到该目录)中删除了ecj.jar,并用ecj 3.5.1替换了sdk lib目录中的ecj.jar。在下一次“ Ant war ”中,新的ecj.jar被复制到ant lib目录中,并且再次运行war任务,该错误消失了。

另请参阅上述注释中的eclipse bugzilla中的错误。

关于java - 在Liferay 6.1 SDK中使用ant构建时发生内部编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33009443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com