1.出现问题
在使用flume进行自定义Source中,要将自定义的代码打包到flume上运行,用maven打包的时候出现这样的问题
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project flume: Compilation failure
[ERROR] /D:/javaeclipse/ideaWorkSpace/flume/src/main/java/com/test/source/Mysource.java:[24,60] -source 1.5 中不支持 diamond 运算符
[ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)
[ERROR]
[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
2.问题解决
看到maven出现报错,大体感觉应该是java编译版本的问题,就首先将项目支持的jdk版本改成了jdk8
并继续讲项目的编译版本也改成了jdk8
然后继续maven install试一下,结果还是不行。
然后就在pom.xml中配置了如下,修改maven编译版本
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
问题成功解决
3.总结
如果我们不告诉maven我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin
默认的jdk版本来进行处理,这样就容易出现版本不匹配,以至于可能导致编译不通过的问题。maven默认使用的编译版本很低,我们最好指定一下maven的编译版本