Jenkins构建失败:maven-compiler-plugin报错Source/Target选项5不支持
Jenkins中Maven编译失败:Source/Target option 5不再支持的解决方案
问题重现
你的Jenkins构建执行org.apache.maven.plugins:maven-compiler-plugin:3.1:compile目标时失败,核心错误如下:
[ERROR] Source option 5 不再支持,请使用7或更高版本。 [ERROR] Target option 5 不再支持,请使用7或更高版本。
问题原因
Maven默认的Java源码和目标字节码版本是1.5(对应选项5),但你的环境(JDK版本或Maven插件版本)已不再支持这个老旧的Java版本。另外我注意到你的POM里有个小问题:把maven-compiler-plugin当成普通依赖放在<dependencies>节点下了,Maven插件应该配置在<build><plugins>中,而非依赖列表里。
解决方案
以下两种方式任选其一即可解决问题:
方案1:通过Maven属性统一配置版本
在POM的<properties>节点中添加Java版本配置,所有相关插件会自动继承这个版本:
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!-- 这里选1.8作为示例,你可以根据Jenkins上的JDK版本调整为11/17等更高版本 --> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
记得删除<dependencies>里的maven-compiler-plugin依赖项。
方案2:显式配置maven-compiler-plugin
把maven-compiler-plugin从<dependencies>移到<build><plugins>中,明确指定源码和目标字节码版本:
<build> <plugins> <!-- 保留原有的surefire插件配置 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.0.0-M4</version> <configuration> <suiteXmlFiles> <suiteXmlFile>MYtestNG.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> <!-- 配置compiler插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <!-- 指定Java版本,需与Jenkins上的JDK版本匹配 --> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
同样要删除<dependencies>中的maven-compiler-plugin依赖。
额外注意事项
- 确保Jenkins服务器已安装对应版本的JDK(比如1.8),并且在项目配置中指定了正确的JDK(可在「构建环境」或「Maven配置」中选择)。
- 如果需要更高版本的Java(如11+),直接修改上述配置中的版本号即可,只要JDK支持就行。
内容的提问来源于stack exchange,提问作者Dip
相关产品推荐
相关产品推荐

