漂流记"/>
苦海漂流记
都闪开,老衲要普渡众生——持续跟新,记录一些简单而好笑的东西,专治各种头疼
一、idea相关
1. 明明添加了所有依赖,程序却跑不起来,报错读不到配置文件
(编号:201803292303)
2. 项目依赖的文件太多,导致命令行太长
(编号:201807092011)
建议选择JAR manifest
选项,而不是classpath file
。
- 前者是将用到的jar包都写在一个临时包的
MANIFEST.MF
文件里。 - 后者是将用到的jar包都写在一个临时文件里,传递给idea的一个代理去启动。
相比之下,JAR manifest
选项更“常规”,不依赖于idea,所以建议使用。classpath file
可能会使VM options
失效或异常。
3. java目录下的配置文件(*.xml, *.properties等),无法自动拷贝到编译目录——IDEA 不自动复制资源文件到编译目录 classes 的问题
(编号:201807110916)
根本原因:idea有自己标准的目录结构和build程序的逻辑,如果你的项目不符合idea的规范则不可以使用idea直接Run,而是需要修改gradle文件建立自己的build逻辑,然后让idea使用gradle去build和Run。或者就要修改工程,使其满足idea的规范。
关于这个问题的讨论,《解决 IDEA 中src下xml等资源文件无法读取的问题》一文中的第四种方法流传甚广,但是本人在实施后没有效果。第一种方法,可以根治,但是要改变现有的目录结构。
于是找到了另外一个变通的方法,亲测可用:
- 在对应微服务的gradle文件中添加以下代码:
processResources {from(sourceSets.main.allSource) {exclude("**/*.java")}
}
- 在设置中,把IDE运行项目的方式设置为:委托gradle运行。(但是,注意:在勾选了此选项后,可能会出现另一个问题,程序不能正常的停止或重启。也就是说,如果出现了:“你明明修改了程序逻辑,重启之后,却感觉还是在运行以前的逻辑”这种情况,你需要1. 手动清理掉idea的编译目录(out目录);2. 手动通过任务管理器杀死原来的程序进程,再重新启动。)
- 有一点需要注意的是,2中的设置是全局设置。当你需要运行符合idea规范的项目但是不符合gradle规范时,需要再取消掉2中的选项。这也就意味着如果你在同时维护多个项目,而多个项目中有的符合idea规范,有的不符合,你在运行不同的项目时,可能需要对2中的设置来回进行切换。
4. idea为当前项目添加gradle支持
(编号:201807110916)
idea从git上clone代码之后,工程中是默认是没有gradle支持的,需要自己手动添加一下,步骤如下。
- 在工程的右侧打开gradle工具栏,点击“+”号,选择当前的项目中的settings.gradle文件,点击确定;
- 在弹出的Import Module from Gradle对话框中,对gradle进行设置,一般选择以下选项,然后点击确定即可。
- Use auto-import
- using explicit module groups
- Create separate module per source set
- Use local gradle distribution
- Gradle home选择本地的gradle路径
- Gradle JVM选择Use Project JDK
5. IDEA打开大型项目时运行缓慢
(编号:201808311043)
解决方法:调大IDEA的内存即可(注意:本方法会占用系统更多的内存,请在系统资源充足的情况下使用)
步骤:
- IDEA配置文件的路径:用户路径
{$USER\.IntelliJIdea2018.1\config}
和安装路径C:\Program Files\JetBrains\IntelliJ IDEA 2018.1.5\bin
- 去上面的2个路径分别下寻找2个文件(共4个文件,一般是用户路径下的文件生效,具体哪个生效是配置在安装路径下的idea.bat文件里的VM_OPTIONS_FILE变量):
idea.exe.vmoptions
和idea64.exe.vmoptions
- 把文件中的几个内存参数调大一点即可,我的配置如下:
-Xms256m
-Xmx2048m
-XX:ReservedCodeCacheSize=480m
- 如果不想去寻找配置文件,有一个简便方法,打开idea,点击Help->Edit Custom VM Options,可以直接打开正在使用配置文件。
6. IDEA: 遇到问题Error during artifact deployment. See server log for details.
(编号:201904020953)
参见:《IDEA: 遇到问题Error during artifact deployment. See server log for details.详解》
7. idea的设置会覆盖日志配置文件中root的日志级别
(编号:201905281853)
如果开启了idea的debug选项,就会使log4j2.yaml中root的level失效,不管配置文件中设置的什么级别,都会按debug级别处理。
日志级别生效的优先级排序:
thresholdFilter的level > IDEA的Enable debug output > log4j2.yaml中root的level
二、Tomcat相关
1. Tomcat日志乱码(idea启动Tomcat日志乱码)
(编号:201903261711)
解决办法:Tomcat起服务控制台乱码问题,原文摘录如下。
- 找到tomcat/conf/logging.properties;
- 重新设置这个属性:java.util.logging.ConsoleHandler.encoding = GBK;
- 重启tomcat,查看日志数据即可.
三、Chrome浏览器相关
1. 同一款浏览器,同一个网站,在其它机器上显示正常,在自己的机器上显示不正常,或者某些链接打不开
(编号:201808291016)
最可能的原因:被某个“广告拦截插件”给拦截了网站的部分功能或请求
(有人说,浏览器的版本也会影响显示,但实际上,浏览器出于兼容性的考虑,同一时代的版本在显示上并不会有太大差别)
建议:使用拦截器的同学,使用黑名单(只拦截指定的网站),而不是白名单(拦截所有网站,只放行指定网站);使用白名单容易发生误拦截
四、vue系列相关
1. 使用vue devtools调试时,出现莫名其妙的报错,导致页面卡死;关掉vue devtools就没问题了。
(编号:201908272237)
如果你遇到了类似下面的报错:
Uncaught TypeError: Cannot read property 'path' of nullat VuexBackend.replayMutations (backend.js:1308)at VuexBackend.onInspectState (backend.js:1026)at Bridge.emit (backend.js:6074)at Bridge._emit (backend.js:5897)at backend.js:5822at Array.forEach (<anonymous>)at backend.js:5822at listener (backend.js:3215)
请在vue devtools的settings中,关掉New Vuex backend好么?相信我,这个功能就tm的是个sb!!!(我的vue devtools版本是5.1.1)
五、Navicat相关
1. 在Navicat中创建存储函数
如果遇到这个的报错,具体原因参见:《存储函数与存储过程的区别》
解决办法:可以选用下面的两个方法中的一个。
在高级选项卡中,
- 勾选上决定性这个选项
- 在数据访问的下拉菜单里选择NO SQL或者READS SQL DATA
更多推荐
苦海漂流记
发布评论