1. 最近新换了一个mac os,重新安装环境,用新装的idea随便编译一个项目就报错,如下
% ./build.sh
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] ke [pom]
[INFO] kafka-eagle-common [jar]
[INFO] kafka-eagle-api [jar]
[INFO] kafka-eagle-core [jar]
[INFO] kafka-eagle-plugin [jar]
[INFO] ke [war]
[INFO]
[INFO] ---------------< org.smartloli.kafka.eagle:kafka-eagle >----------------
[INFO] Building ke 2.0.0 [1/6]
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ kafka-eagle ---
[INFO]
[INFO] ------------< org.smartloli.kafka.eagle:kafka-eagle-common >------------
[INFO] Building kafka-eagle-common 2.0.0 [2/6]
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The POM for com.alibaba:druid:jar:1.1.21 is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ kafka-eagle-common ---
[INFO] Deleting /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/target
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ kafka-eagle-common ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ kafka-eagle-common ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 62 source files to /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/AlertUtils.java:[51,55] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/OwnerInfo.java:[33,53] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/topic/TopicPartitionSchema.java:[42,70] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/MailSenderInfo.java:[46,61] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/JMXFactoryUtils.java:[47,81] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/KafkaSqlInfo.java:[35,57] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/OffsetZkInfo.java:[36,55] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/KafkaZKPoolUtils.java:[43,82] -source 1.5 中不支持 diamond 运算符
(请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/KafkaZKPoolUtils.java:[49,60] -source 1.5 中不支持文字中存在下划线
(请使用 -source 7 或更高版本以允许文字中存在下划线)
[INFO] 9 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for ke 2.0.0:
[INFO]
[INFO] ke ................................................. SUCCESS [ 0.156 s]
[INFO] kafka-eagle-common ................................. FAILURE [ 1.230 s]
[INFO] kafka-eagle-api .................................... SKIPPED
[INFO] kafka-eagle-core ................................... SKIPPED
[INFO] kafka-eagle-plugin ................................. SKIPPED
[INFO] ke ................................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.499 s
[INFO] Finished at: 2020-08-06T19:38:51+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project kafka-eagle-common: Compilation failure: Compilation failure:
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/AlertUtils.java:[51,55] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/OwnerInfo.java:[33,53] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/topic/TopicPartitionSchema.java:[42,70] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/MailSenderInfo.java:[46,61] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/JMXFactoryUtils.java:[47,81] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/KafkaSqlInfo.java:[35,57] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/protocol/OffsetZkInfo.java:[36,55] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/KafkaZKPoolUtils.java:[43,82] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR] /Users/leonlai/Documents/explore/kafka-eagle-2.0.0/kafka-eagle-common/src/main/java/org/smartloli/kafka/eagle/common/util/KafkaZKPoolUtils.java:[49,60] -source 1.5 中不支持文字中存在下划线
[ERROR] (请使用 -source 7 或更高版本以允许文字中存在下划线)
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf :kafka-eagle-common
2. 网上找了下,主要是配置idea上的sdk版本和language level,将sdk配置成1.8,language level配置成8,如下
File->Project Structure
IntelliJ Idea->preferences
可能对于大部分人有用,但在我机器上不管用,而且即使language level不是1.8,只要按第3步配置了maven的settings.xml文件,就可以正常编译。
3. 最终解决方法:修改maven的settings.xml,指定JDK版本,如下
<profiles>
<profile>
<id>jdk-1.8</id><activation>
<jdk>1.8</jdk>
</activation><properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties><repositories>
<repository>
<id>jdk18</id>
<name>Repository for JDK 1.8 builds</name>
<url>http://www.myhost.com/maven/jdk14</url>
<layout>default</layout>
<snapshotPolicy>always</snapshotPolicy>
</repository>
</repositories>
</profile>
</profiles>