记一次“java: 程序包org.aspectj.lang不存在”问题解决

Posted brightcon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记一次“java: 程序包org.aspectj.lang不存在”问题解决相关的知识,希望对你有一定的参考价值。

最近用idea打开项目,点调试时一直报“org.aspectj.lang不存在”错误。

我检查一下依赖确实是缺一个aspectj的依赖,因为是springboot项目我给它加上了依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-aop</artifactId>
</dependency>

然后点右侧的maven刷新,再点调试还是报这个错(先点运行可能能正常启动,但点调试报错)。

最后尝试了一下重新加载Maven项目

①在根目录的POM文件右击,选Unlink。如果没变,再试一次。

unlink完成后应该是下图的样子

②右击pom.xml文件,选择以Maven项目加载,变成正常的项目样子。

③点击右侧的Maven刷新,再点启动

我碰到情况是点启动是正常的,关了点调试,又报缺了个什么,但是那个依赖在POM文件里是存在的。

于是我又点了一下Maven刷新,然后关闭idea,重新打开。

再点调试,能正常运行调试了。

注意:这边没有用网上说的用Maven运行程序的方式

我这边的情况是如果勾上这个再点调试会报其它错误,文本编码也不正常。所以还是用的idea方式运行。

总结:

①首先到POM文件里查看依赖是否存在,不存在的话加上,并刷新Maven依赖。

②还是报不存在,一个是把根目录下的pom.xml,unlink,重新添加后再刷新,还有就是重启idea,刷新maven再启动。

如果这样操作了还是不行,可以试试jar包调试(见我转载的文章)。

记一次Selectable的误用

#### 记一次Selectable的误用

记一次selectable的误用,现有个UI层级结构如下图所示:
技术分享图片
其在场景中位置如下所示,可以看到Button是Panel的子物体,开始时Button是隐藏的,并且他们处于不同的位置:
技术分享图片
将这样的一个脚本挂在Panel上面,Button序列化为Panel的子物体Button:
技术分享图片
------------------------------------------
现场还原完毕,此时点击Panel,Button会显示出来,当Button显示出来后点击Button,Button永远不会触发相应OnClick事件,Console也永远不会有print的输出,通过查看EventSystem可以看到,当前选择的GameObject,永远是Panel.这是怎么一回事呢?
因为不太清楚,UGUI的事件是怎么派发的,按我的猜测:当Button被点击后,因为Button继承自Selectable,此时神奇的事发生了,事件处理系统并没有优先派发Button的OnPointerClick,而是优先调用了Panel的OnDeselect(),因为Button也是一个Selectable,当一个SelectableSelect时,EventSystem总会先调用先前选中的Selectable的OnDeselect()函数,这个可以在Selectable的源码中了解到,然后调用后Button就被隐藏了,然后莫名的Button的点击事件又被传递到了Panel上,Panel的OnSelect()被调用,Buton又被显示了出来.
所以在整个过程中看到的是:Buton一直显示着,但是Button的事件永远没用被触发.在我看来这是一次Selectable的误用,查看Selectable的源码,Selectable主要也是实现了GameObject被选中后的视觉变化.不应该同时使用Select的OnSelectOnDeselect,尤其是在上述的Selectable的物体上挂着另一个Selectable,并且用接口控制其子物体显隐时.

以上是关于记一次“java: 程序包org.aspectj.lang不存在”问题解决的主要内容,如果未能解决你的问题,请参考以下文章

记一次Win. Anaconda Prompt Error

记一次 Vue2 迁移 Vue3 的实践总结

记一次Selectable的误用

zabbix记一次简单的部署包方式安装一次过

记一次SqlServer骚操作——递归

记一次直播录屏