一.错误信息
今天优化了一个pom文件,结果出现下面的编译错误:
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/frame/info/ObjectVariableInfo.java:[30,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/client/DecompileClient.java:[55,12] generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
List<ByteCode> byteCodeList = readByteCodeFile.parse();
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/common/DeprecatedInfoParser.java:[29,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/frame/info/UninitializedThisVariableInfo.java:[19,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/frame/parser/impl/TopVariableInfoParser.java:[23,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/handler/impl/ClassHandler.java:[27,5] annotations are not supported in -source 1.3
(use -source 5 or higher to enable annotations)
@Override
/home/yangbolin/workspace/decompile/decompile_shared/src/main/java/com/alibaba/decompile/attribute/info/CodeInfo.java:[57,16] generics are not supported in -source 1.3
(use -source 5 or higher to enable generics)
private List<AttributeInfo> attributeInfoList = new ArrayList<AttributeInfo>();
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.BuildFailureException: Compilation failure
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:715)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure
at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516)
at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114)
at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
... 17 more
从错误发现是由于JDK的版本过低导致不支持注解和泛型,就是说在使用maven进行编译的时候,如果不指定JDK版本,默认使用的是1.3,1.3不支持注解和泛型,如果程序中有注解和泛型,那就悲剧,编译不过。
二.解决方法
知道原因所在之后,那就很好解决问题了,我们只需要在pom文件中指定JDK的版本就OK了,增加下面这样一个plugin
<plugins>
<!--要是没有这个插件的话,maven就会出现编译错误,说不支持annotations-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>GBK</encoding>
</configuration>
</plugin>
</plugins>
三.感想
不知道maven为何提供插件而不自己去检测一下机器上JDK的版本呢?
分享到:
相关推荐
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
这种报错通常是由于Maven项目的编译问题所引起的。解决这种报错的方法是,在pom.xml文件的标签中添加标签,具体代码如下: ```xml <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin ...
在IT行业中,Maven是一个广泛使用的构建自动化工具,主要用于Java项目。它管理项目的构建、报告和依赖关系,使得开发人员可以更加专注于代码本身,而非构建过程。本篇将深入探讨"Maven Web项目配置"的相关知识点。 ...
2. **Nexus作为Maven私服**:Nexus是Sonatype公司提供的一个开源软件,常用于搭建Maven私服。安装Nexus,根据官方文档配置服务器环境,启动服务后,可以在Web界面中管理仓库。 3. **配置Maven指向私服**:在`...
遵循这些步骤,你应该能够解决报错并成功执行`maven install`。在Spring Boot项目中,保持良好的代码组织和明确的主类定义是避免此类问题的关键。同时,定期更新依赖和遵循最佳实践也有助于维持项目的稳定性和可维护...
在日常的软件开发工作中,尤其是使用Maven作为构建工具时,开发者可能会遇到各种各样的报错情况。Maven是一个强大的项目管理和集成工具,它能够帮助我们管理依赖、编译源码、打包应用以及执行测试等任务。然而,由于...
如果以上方法都不能解决问题,可以尝试将整个 .m2/repository 文件夹从编译通过的电脑拷贝到自己电脑对应的 Maven 仓库地址,然后再编译。 Maven install 报错"程序包不存在"问题的解决方法需要我们详细地分析依赖...
由于Maven默认使用GBK编码进行编译,导致无法正确处理某些特殊字符,从而引发编译错误。解决这个问题的方法有两种: #### 方法一:在`pom.xml`中设置`project.build.sourceEncoding` 在`<properties>`标签内添加...
maven编译pentaho-big-data-plugin遇到的所有问题解决,pentaho6.0
本文将深入探讨如何利用IDEA和Maven对GeoServer进行源码编译,以帮助开发者更好地理解和定制GeoServer。 一、源码获取与环境准备 首先,你需要从GeoServer的官方Git仓库或者SourceForge下载源码,通常是2.13.x版本...
2. **生命周期与构建目标**: Maven的生命周期包括清理(clean)、编译(compile)、测试(test)、打包(package)、验证(install)和部署(deploy)等阶段。通过命令行执行`mvn clean install`即可完成整个生命...
Maven插件是Maven的核心组成部分,它们扩展了Maven的功能,使得Maven能够执行各种任务,如编译、测试、打包、部署等。Eclipse Maven插件(m2eclipse)则是Eclipse IDE中的一个插件,它将Maven的构建功能集成到...
通过使用`${property}`语法,我们可以引用Maven属性并在编译或打包阶段动态替换这些值。这对于多环境部署非常有用,比如在不同的开发、测试和生产环境中使用不同的配置参数。 在IntelliJ IDEA中设置Maven Filter...
在进行Maven项目的开发过程中,经常会遇到POM(Project Object Model)文件报错的问题,特别是在创建新的Maven项目时。本文将详细介绍如何解决新建Maven项目后POM.xml文件出现错误的情况。 ### 一、理解POM.xml ...
POM是Maven理解和操作项目的基础,通过解析POM,Maven能够执行各种构建任务,如编译源代码、运行测试、打包应用、生成文档等。 ### 构建生命周期 Maven的构建生命周期由一系列阶段组成,每个阶段代表构建过程中的...
这些注解可以在编译时自动生成相应的代码,从而避免在源代码中手动编写这些繁琐的方法。 ### 主要功能 1. **@Data**:这个注解是最常用的,它可以为一个类生成所有字段的getter和setter,同时包括构造函数、equals...
然而,在使用Java8时,Maven的JavaDoc插件(maven-javadoc-plugin)对JavaDoc的语法检查变得更加严格,有时会因为一些小错误如缺少@param或@return注解而导致编译失败,这会严重影响项目的构建和部署流程。...
2. 其次,需要在pom文件中正确地引入依赖项,例如 javax.servlet.jsp-api 2.0。 3. 然后,需要在IDEA中配置maven的设置,使其能够正确加载本地仓库中的依赖项。 4. 最后,需要在pom文件中将红圈内选项前面的复选框...