您的位置:首页 > 移动开发 > Unity3D

IntelliJ IDEA Community版独特的一个bug:某些目录下的文件能显示但不被编译

2016-05-16 00:00 447 查看
摘要: IntelliJ IDEA Ultimate不存在的问题。没办法只好自己动手折腾了。

版本是2016.1.1 和 2016.1.2。Windows上和Mac上都一样的现象。

问题的详细都提交给JetBrain公司了,但是还没有修复:
https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FIDEA-155471
问题的起源是,有个工程里有个目录叫做rcs,好死不死的正好和古老的CVS版本管理系统所使用的隐藏信息文件后缀同名,默认就不被显示在工程里,看都看不到。这个在Ultimate版里也存在。

这个不是什么大问题,到设定里到File Types设定里,找到"Ignore files and folders"设定,从中把rcs字眼给删除。这就可以显示了,

但是之后,Ultimate版可以正常编译rcs目录下的java文件,Community版不行。

于是想出了一个怪招,见一个rrr符号连接,指向rcs目录,然后在IDEA里把rrr加到"Ignore files and folders"设定里以便隐藏。这的确可以编译了,但是,每次改变一点东西都要手动到菜单里之行“编译 ...当前文件”命令或者全体重新编译,不然代码就执行老的。

于是研究起来,发现是lib/jps-model.jar里又个org/jetbrains/jps/model/impl/JpsFileTypesConfigurationImpl.class 里的固定字符串里改掉就行了。

于是用二进制编辑器替换掉rcs -> rrr,在用jar或者7zip什么的替换掉jps-model.jar里的class为改好的class文件就好了。

这就可以结束了。

具体的研究过程就是把IDEA里所有的jar都展开,用gstrings工具找字符串再grep,最后确定了三个文件可疑,挨个试一下就成了。

cd "/Applications/IntelliJ IDEA CE.app/Contents"

find . -name '*.jar' | while read f; do rm -fr ~/tmp/IntelliJ_IDEA_Community/$f; mkdir -p ~/tmp/IntelliJ_IDEA_Community/$(dirname $f); unzip $f -d ~/tmp/IntelliJ_IDEA_Community/$f > /dev/null; done

cd /Users/q/tmp/IntelliJ_IDEA_Community/

find . -name '*.class' -or -name '*.xml' -or -name '*.json' -or -name '*.properties' | while read f; do gstrings -n 3 $f | grep -w rcs && echo ---- $f ----;done

NG:
".dependency-info;CVS;RCS;SCCS;rcs;
---- ./lib/idea.jar/com/intellij/openapi/fileTypes/impl/FileTypeConfigurable$FileTypePanel.class ----

NG:
u*.hprof;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;RCS;SCCS;__pycache__;_svn;rcs;vssver.scc;vssver2.scc;
---- ./lib/idea.jar/com/intellij/openapi/fileTypes/impl/FileTypeManagerImpl.class ----

OK:
CVS;SCCS;RCS;rcs;.DS_Store;.svn;.pyc;.pyo;*.pyc;*.pyo;.git;*.hprof;_svn;.hg;*.lib;*~;__pycache__;.bundle;vssver.scc;vssver2.scc;*.rbc;
---- ./lib/jps-model.jar/org/jetbrains/jps/model/impl/JpsFileTypesConfigurationImpl.class ----

NG:
<ignoreFiles list="CVS;SCCS;RCS;rcs;.DS_Store;.svn;.pyc;.pyo"/>
---- ./lib/resources.jar/CommunityFileTypes.xml ----
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  IntelliJ IDEA bug