problems_ide

1 idea中maven无法导入依赖

  1. 各种尝试都不行,最后无意间看到网上有人执行mvn clean install命令的。于是受到启发,执行clean和install命令,确实下载好了依赖,然后重启idea,所有依赖才能正常工作,如下图:

  2. 另外,还可以尝试注释掉某个依赖,再重新放开,右侧maven面板中的依赖项就不会有红色下划波浪线了。

  3. 还遇到一种情况,一次复制3个依赖到pom.xml中,这3个依赖一直显示红色,无法被导入,各种尝试都不行,而且还影响到整个项目无法启动,也无法执行clean,package等maven操作。 最后发现是其中一个依赖有问题,影响了另外2个依赖的导入。

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jdbc</artifactId>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
		</dependency>
		<dependency>
			<groupId>org.hsql</groupId>
			<artifactId>hsqldb</artifactId>
			<scope>runtime</scope>
		</dependency>

其中hsqldb有问题,其groupId写错了,不是org.hsql,应该是org.hsqldb
曾经一度以为是idea community edition不支持超过10个的module数量,后来发现不是。

2 idea 一直不停的updating indices 卡进度条问题

解决方案:file -> Invalidate Caches / Restart -> Invalidate and Restart
即重建索引。

3 IntelliJ IDEA Error:(24, 35) java: 常量字符串过长

在给一个字符串赋值很长很长的一串文本时, idea 编译不通过,报错:
Error:(24, 35) java: 常量字符串过长

解决方法:
File -> Settings -> Build,Execution,Deployment -> Compiler -> Java Compiler , Use Compiler, 选择Eclipse , 点击 Apply

4 idea跑mapreduce结果为空白文本,idea代码被莫名其妙地改动了

action:
一开始查找Step1Main.java的代码错误,尝试关掉分区设置,还是一样。
后来以为是mapper或reducer不执行,网上查找了半天也没有正确原因。
最终,偶然间看到reducer中,某些代码被莫名其妙地改动了。字符串login被修改为step1,字符串visit被修改为step2.
将其修改回来后,执行程序正常。

idea还是有bug的,包重命名时,会在其他module下新建相同名称的包,还可能把java类移动到新建的包下面。以后要注意了。
针对idea,改变文件/文件夹名称和所在路径时,有可能改变发生位置变化的文件中的文本内容,尤其是JAVA类中和类名相同的字符串。
JAVA类名一修改,内部的类名文本也会改,但可能有bug,会把其他和类名相同的字符串也改掉,导致程序运行出错。
所以一定要慎重,尽量不改,如果一定要改,修改前后也要考虑可能出错的地方去,并检查之。

5 idea中跑mapreduce报错, PATH设置错误

errorlog:

[root@node01 servers]# hadoop jar loginVisit.jar cn.develop.loginVisit.step1.Step1Main
19/07/17 22:14:59 INFO client.RMProxy: Connecting to ResourceManager at node01/192.168.8.100:8032
19/07/17 22:14:59 WARN security.UserGroupInformation: PriviledgedActionException as:root (auth:SIMPLE) cause:java.net.ConnectException: Call From node01.hadoop.com/192.168.8.100 to node02:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
Exception in thread "main" java.net.ConnectException: Call From node01.hadoop.com/192.168.8.100 to node02:8020 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

RCA: Step1Main.java中,path设置错误:
TextOutputFormat.setOutputPath(job,new Path("hdfs://node02:8020/loginVisit/output3"));
其中node02要改为node01.
严重怀疑代码被idea莫名其妙地修改了!

6

原文地址:https://www.cnblogs.com/mediocreWorld/p/15185993.html