关于IDEA的debug阻塞模式的一个坑

-----------------------20180504更新-------------------------------------

今天用idea的maven compile时,发现虽然idea的设置已经将Java compile设置成1.8(我本机的jdk版本),且maven项目的project settings也是1.8,但一直是出现如下情况:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile (default-compile) on project xxx: Fatal error compiling: 无效的目标发行版:

解决办法,先确认idea的settings->Java compile和project structure->module->language level都为8,再确保父工程的pom.xml有以下代码:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>${java.version}</source>
          <target>${java.version}</target>
          <encoding>UTF-8</encoding>
          <verbose>true</verbose>
          <compilerArguments>
            <sourcepath>${project.basedir}/src/main/java</sourcepath>
          </compilerArguments>
        </configuration>
      </plugin>

 注意,这里的${java.version}必须在properties里定义(或写死),否则它会一直找不到按默认的1.5去编译。

---------------------------------------------------------------------------------------------------------------------------

今天因为一个在idea工具下debug模式的阻塞问题,被坑了很久。

本地debug调试时,做远程调用时,在server端debug,一个探活线程因为debug的全局阻塞(All)也dead了,而探活机制由此会被认定为dead,造成client会和server又新建一个socket再去请求(我所做的项目的探活机制如此),造成重复调用,由此造成数据重复。(线上环境因为没有debug,是没有这个问题的)。注意这种情况跟一个服务耗时较长在规定时间得不到响应的情形不同(这种情况下探活机制并没有被认为是dead)~

后来发现是idea的锅,debug模式下,它默认的suspend是All的,需要修改成Thread:

扫描二维码关注公众号,回复: 116812 查看本文章



 



 

猜你喜欢

转载自raising.iteye.com/blog/2421960
今日推荐