Searching for __ID

I have noticed that when building my project from within IntelliJ during the compile process I get a dialog box that says "Searching for __ID". Now we use the __ID = "$Id:$" cvs stuff to get the revision version into the class when checking into CVS. I do not see how this affects the IntelliJ build process though? It is really annoying at it takes ages to process the rather large project we have here. Anyone know if my guess is right, or if you can disable it somehow?

6 comments
Comment actions Permalink

Hello Ryan,

I have noticed that when building my project from within IntelliJ
during the compile process I get a dialog box that says "Searching for
__ID". Now we use the __ID = "$Id:$" cvs stuff to get the revision
version into the class when checking into CVS. I do not see how this
affects the IntelliJ build process though? It is really annoying at it
takes ages to process the rather large project we have here. Anyone
know if my guess is right, or if you can disable it somehow?


It affects Make dependency checking. Add private access modifier to this
field in every class and it will be almost instant.

--
Serge Baranov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0
Comment actions Permalink

Serge,

Thanks for the prompt response. Just wondering if this also affect a standard command line Java build, or if this is because of some of the internal stuff IntelliJ does on top of the standard build.

Thankk again,
Ryan

0
Comment actions Permalink

Standard (javac?) doesn't support incremental build. IDEA searches for dependant
java files that need to be re-built upon changes in initial build scope.

-


Maxim Shafirov
http://www.jetbrains.com
"Develop with pleasure!"

Serge,

Thanks for the prompt response. Just wondering if this also affect a
standard command line Java build, or if this is because of some of the
internal stuff IntelliJ does on top of the standard build.

Thankk again,
Ryan



0
Comment actions Permalink

Hello Maxim,

Standard (javac?) doesn't support incremental build. IDEA searches for
dependant java files that need to be re-built upon changes in initial
build scope.

-------------------
Maxim Shafirov
http://www.jetbrains.com
"Develop with pleasure!"

>> Serge,
>>
>> Thanks for the prompt response. Just wondering if this also affect a
>> standard command line Java build, or if this is because of some of
>> the internal stuff IntelliJ does on top of the standard build.

Yes, Maxim is right. It affects only IDEA's Make.

If incremental Make finds out that a static final field has been changed,
it searches for the usages of this field in order to recompile all classes
where
the field is used. Our Make builds dependency graph which is based on the
data
contained in compiled classes (for performance reasons), but in this case we
unfortunately have to use PSI in order to find usages: static final fields
are
inlined by javac and thus we cannot find any dependencies by analyzing
the class file.

Field's visibility is taken into account, so in order to fix the performance
problem
I suggest to make these fields private - then usage search will be limited
only to
containing file and not to the entire project.

--
Serge Baranov
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"


0
Comment actions Permalink

Unfortunately we have an internal command line tool for looking up the CVS version of any of our files. It is bases on Java reflection. So if I change its access modifier to private then it will break that tool. Is there any other way I can prevent this from being checked in the incremental build.

0
Comment actions Permalink

I change its access modifier to private then it will break that tool.


-


Maxim Shafirov
http://www.jetbrains.com
"Develop with pleasure!"


0

Please sign in to leave a comment.