错误信息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project gcjgfj: Compilation failure: Compilation failure:
[ERROR] /var/lib/jenkins/workspace/gcjgfj/src/main/java/com/tky/gcjgfj/serviceimpl/****ServiceImpl.java:[6,32] 找不到符号
[ERROR] 符号: 类 ****Dto
[ERROR] 位置: 程序包 com.tky.bim.basedata.dto
[ERROR] /var/lib/jenkins/workspace/gcjgfj/src/main/java/com/tky/gcjgfj/service/****.java:[5,32] 找不到符号
[ERROR] 符号: 类 ****Dto
我是引入了mapstruct工具包之后报的错,我们不告诉【maven】我们的代码要使用什么样的jdk版本编译的话,它就会用maven-compiler-plugin默认的jdk版本来进行处理,这样就容易出现版本不匹配的问题,以至于可能导致编译不通过的问题。
- maven 3.x 貌似是默认用jdk 1.5
解决方法:
两种方式(修改 pom.xml )
-第一种:在标签内加入以下
<!-- 指定maven.compiler.plugin 配置版本,解决编译问题 -->
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
- 第二种:以标签的方式引入plugin
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- 指定maven.compiler.plugin 配置版本,解决编译问题 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>