这个错都是在MAVEN插件在编译的时候报的,所以问题一定是出在编译的环节上。

这个时候就要好好检查MAVEN的编译配置,

1、看看配置里的编译版本和本机环境上配置的java版本是否一致,有时候报错的类有可能是引用了另外另外一个MAVEN模块的代码,也要看看那个模块的版本配置编码是否一致。但这并不是一定的,有时候不一致也不会有问题,但这是一个可以注意的点。

例如下图情况:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>

2、如果报错的类里面有引用了另外一个MAVEN模块的代码,那么在打这个模块的包之前,最好先编译打包一下那个要引用的MAVEN模块。

3、还有可能是编译插件版本的问题,例如刚刚上面的MAVEN插件配置,在出问题的时候可以尝试把版本调低或者调高,然后再编译试试。

4、还要看看编译插件里面是否还有引用了其它的插件,例如下面情况所示:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>${mapstruct.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>

这里的编译插件还引用了mapstruct依赖,所以要检查一下这个引用的依赖版本是否有问题,可以尝试更换其它版本。

最近我遇到的一个问题就是出在这里。我的工程里面有一个DTO类,然后在另外一个impl类里面会调用这个DTO类某个属性的set方法,就是在编译这个impl类的时候,报了找不到符号,报错的位置就是这个set方法的位置。后来试了好多方法都不行,最后发现原来这是mapstruct的一个bug,如果我这个DTO类的getter和setter方法的顺序与属性的顺序不一致的话,就会编译失败。例如类里面的属性先是name,下一行就是age,再下一行就是habbit,那么getter,setter方法也要按这个顺序,先是name的getter,setter方法,然后再是age的getter,setter方法,等等。我就是有个组getter,setter方法顺序不对,所以编译出错了。这真的是非常坑。

所以用这些开源的插件,尽量用稳定版本,不然怎得非常坑。

5、简单粗暴地使用“Maven Update Project”,这个方法能解决大部分情况下的这个问题。

以上就是最近的总结了,如有不当之处,欢迎指出。

转载请标明出处:http://www.cnblogs.com/Starshot/p/7441075.html

MAVEN 编译打包时报“.....找不到符号” 的处理方法总结的更多相关文章

  1. MAVEN 编译打包时报“找不到符号”cannot find symbol 的处理方法总结

    http://www.cnblogs.com/Starshot/p/7441075.html

  2. maven 编译报错 “找不到符号”

    报错如下: E:\workspace\iccardcore\mis\src\main\java\com\hxsmart\sicard\core\webapp\action\process\DayEnd ...

  3. 【IDEA】【maven】idea使用maven插件 打包提示找不到符号找不到类,但是却没有错误

    [本篇方法如果无效,请使用终极解决方法] [终极解决方法]:https://www.cnblogs.com/sxdcgaq8080/p/10117852.html 如下,在右侧maven工具中进行打包 ...

  4. 关于maven项install时报找不到符号的错误

    解决办法: 聚合工程: 1.eclipse中执行project -->clean,将项目清理一下: 2.选中聚和工程右键-->Run As-->Maven builed...--&g ...

  5. Maven 运行启动时****找不到符号*com.xxx.user.java

    Maven 运行启动时****找不到符号*com.xxx.user.java maven项目更改后没有安装 (install) 重新安装解决问题!

  6. maven:打包时报错,报’找不到符号’

    参考文章:https://www.cnblogs.com/kelly-one/p/7349930.html 问题描述: 工程开发调试都没有问题,就是不能导出WAR包,用mvn clean packag ...

  7. Maven编译打包出错:找不到符号

    项目中,使用的是maven管理,但是有几个jar不是通过maven引入的,是通过IDEA导入的,在使用maven插件编译的时候,会出现如下的一些错误: 解决方法: 在项目中创建一个目录lib,然后将j ...

  8. MAVEN 编译打包测试 指定本地jar

    转载自:http://penuel.iteye.com/blog/1766102 maven对于互联网开发,进行版本管理有着不可或缺的作用;  而经常开发的程序猿直接联调或者依赖未上线或deploy的 ...

  9. maven编译打包

    sonar扫描java项目,需要使用maven 来到maven项目下第一件事情编译打包,注意代码扫描是在编译之后的:https://blog.csdn.net/qq_34556414/article/ ...

随机推荐

  1. RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介

    今天这篇博文是我翻译的RabbitMQ的最后一篇文章了,介绍一下RabbitMQ的C#开发的接口.好了,言归正传吧. Net/C# 客户端 API简介1.主要的命名空间,接口和类  定义核心的API的 ...

  2. JavaScript 之 HelloWorld编写

    HelloWorld.html 代码如下: <html><body><script type="text/javascript">documen ...

  3. sleep() 和 wait() 有什么区别?

    sleep()方法是使线程停止一段时间的方法.在sleep 时间间隔期满后,线程不一定立即恢复执行.这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非"醒来"的 ...

  4. xdu_1064:Desolator in RA2

    问题转化为,单个面积*2-交面积.下面求交面积.把直角坐标系中全部转90°,每个方块的坐标都做相应变化,这样会发现新的坐标系中空出了一部分方块,找规律发现,若求交矩形包含的方框数,其中恰好一半是前面空 ...

  5. 怎么去掉javascript 的Array的重复项

    //完美去除法: var arr=[1,3,2,2,11,4]; var arr1=[]; var arr2=arr.sort(function(a,b){ return a-b; }); //把数组 ...

  6. Java-认识变量、注释并能及时发现错误

    package com;//变量的演示public class VarDemo { public static void main(String[] args) { /* * 1)题目不用抄 2)注释 ...

  7. 替换Spring Boot 的EnableCaching注解

    SpringBoot 中可使用@Cacheable注解来更方便的使用redis,这个注解是通过拦截器工作的,使用了@Cacheable的方法执行时,执行到CglibAopProxy.java中的 Dy ...

  8. Linux学习笔记--一些错误的记录

    运行linux的时候,输入shutdown -r now命令提示:bash:shutdown is not found.出现这个错误是因为这条命令没有加入到系统的配置文件中,运行命令export PA ...

  9. ETL作业自动化调度软件TASKCTL4.5安装程序是选项解释

    下文仅针对TASKCTL4.5有效,在执行安装程序后,会看到安装程序有4个选项,其中,1和2是需要了解的. 1, 典型安装: 这个选项是单机部署,在第一次使用TASKCTL的时候,我用的是这种安装方式 ...

  10. Linux(6)文件和磁盘管理

    文件和磁盘管理 1. 文件管理ls ls : 查看文件信息. 列出目录的内容 -a :显示指定目录下的所有文件, 包括以.开头的隐藏文件 -l :以列表方式显示文件的详细信息 -h :配合-l显示文件 ...