![](/img/trans.png)
[英]Compile errors with Maven but not in Eclipse after upgrade from java 1.7 to 1.8
[英]Maven & Eclipse Mars compile java 1.8 errors
我用Eclipse
Version: Mars.2 Release (4.5.2)
Build id: 20160218-0600
和maven(mvn -v)
Apache Maven 3.3.3 (7994120775791599e205a5524ec3e0dfe41d4a06; 2015-04-22T13:57:37+02:00)
Maven home: C:\Daten\maven
Java version: 1.8.0_60, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_60\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "dos"
我的%JAVA_HOME%设置为
C:\Program Files\Java\jdk1.8.0_60
我的java是(java -version)
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
我用-vm(java jdk版本)运行eclipse,我在eclipse中添加了外部maven安装。 在我导入项目并获得strang行为之后。 有些类在eclispe中是红色的,有些则不是。 我用javap -version检查它们都是用主要版本52编译的。我创建了新的工作区并获得了相同的结果。 很奇怪。 如果我用eclipse打开一个“红色”Java类并保存它就可以了(没有编译错误)。
我真的不知道是什么问题。
我在日食中遇到的错误
Syntax error on token "package", assert expected
Syntax error on token "import", throw expected
作为父pom我使用版本1.3.3-RELEASE的spring-boot-starter-parent我还指定了我所知道的所有属性,如java.version,maven.compiler.source / target和项目构建源和输出编码。 还尝试定义maven编译器插件。 没有帮助。
提供代码示例
package com.test;
public class AExample {
public static void main(String[] args) {
System.out.println(args.length);
}
}
看起来它总是依赖于我把类放入的包。用一些包它只是正常编译它有一些它有下面的错误
com.test cannot be resolved to a type AExample.java line 1
Illegal modifier for the local class AExample; only abstract or final is permitted AExample.java line 3
Syntax error on token "package", assert expected AExample.java line 1
Syntax error, insert "ClassBody" to complete ClassDeclaration AExample.java line 3
The nested type AExample cannot hide an enclosing type AExample.java line 3
不同包中的完全相同的类没有产生该错误。 只是在特定的包装中。 任何想法,我可以检查?
埋在某个地方可能是一个导致所有其他错误的实际编译错误。 专注于此。 在我的情况下,我有一个文件丢失}
。 我能够通过浏览整个错误列表找到该文件,以查找Syntax error on token
没有Syntax error on token
或者foo cannot be resolved to a bar
。
来自评论:
就我而言,另一个文件中存在未解决的冲突。 显然,eclipse-mars和/或java8 eclipse编译器在依赖文件中的某些类型的编译错误之后无法以有意义的方式编译/构建其他文件,而是为那些无法构建的文件喷出似乎是乱码的错误对坏的依赖
(这个答案基于Richard Sitze的评论,对于将来发现这个问题的其他人来说。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.