这个错都是在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. 前端框架之bootstrap

    一.bootstrap按钮 1.按钮 <button class="btn btn-default">按钮</button><button class ...

  2. 【SignalR学习系列】2. 第一个SignalR程序

    新建项目 1.使用VisualStudio 2015 新建一个Web项目 2.选择空模板 3.添加一个新的SignalR Hub Class (v2)类文件,并修改类名为ChatHub 4.修改Cha ...

  3. JStorm与Storm源码分析(一)--nimbus-data

    Nimbus里定义了一些共享数据结构,比如nimbus-data. nimbus-data结构里定义了很多公用的数据,请看下面代码: (defn nimbus-data [conf inimbus] ...

  4. Mac下安装 MongoDB

    Mac 下安装 MongoDB 一般有两种方法,一种是通过源码安装,一种是直接使用 homebrew ,个人推荐使用 homebrew ,简单粗暴. 1.安装 homebrew : /usr/bin/ ...

  5. OpenCV探索之路(二十一)如何生成能在无opencv环境下运行的exe

    我们经常遇到这样的需求:我们在VS写好的程序,需要在一个没有装opencv甚至没有装vs的电脑下运行,跑出效果.比如,你在你的电脑用opencv+vs2015写出一个程序,然后老师叫你把程序发给他,他 ...

  6. Swift学习之构造方法

    定义 构造过程是为了使用某个类.结构体或枚举类型的实例进行的准备过程.这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务. 构造方法可以被归结为指定构造方法与遍历构造方法,在S ...

  7. CentOS 下mysql ERROR&n…

    CentOS 下mysql ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO) 描述:在操作数据库时会出 ...

  8. 表达式求值(二叉树方法/C++语言描述)(一)

    使用二叉树对算数表达式(以下简称为表达式)进行求值,实质上是将表达式转换为二叉树,对其进行后序遍历,得到后缀表达式的同时可以求得表达式的值.转换和求值的过程也需要借助数据结构栈的帮助. 二叉树数据结构 ...

  9. NYOJ--114--某种序列(大数)

    某种序列 时间限制:3000 ms  |  内存限制:65535 KB 难度:4   描述 数列A满足An = An-1 + An-2 + An-3, n >= 3 编写程序,给定A0, A1 ...

  10. asp.net mvc项目远程发布到windows server服务器

    文章参考 自学MVC看这里——全网最全ASP.NET MVC 教程汇总 图文详解远程部署ASP.NET MVC 5项目 配置Web部署处理程序 设备及环境 一台装有windows server 201 ...