curved-vase-73456
08/30/2018, 9:33 PMMore subtly, if you have many intermediateHow one can detect which dependencies/3rdparty jars are causing this behavior? I see a message when invoking strict_deps “check for conflicting dependencies with `-Ylog-classpath`” but the resulting output is quite huge and I’m not sure how to see/search for conflicts using it 😕targets between yourjava_libraryand yourjvm_binariestargets (which is normaly the case), simply changing which combination ofjar_librarytargets are in the samejava_libraryinvocation may invalidate the cache and force Pants to recompile them, even if their sources are unchanged. This is because they may resolve different versions of their transitive jar dependencies than the previous time they were compiled, which means their classpaths will be different. Getting a different classpath causes a cache-miss, forcing a recompile. In general recompiling when the classpath changes is the correct thing to do, however this means that unstable transitive dependencies will cause a lot of cache-thrashing. If you have a large repository with a large amount of code, recompiles get expensive../pants
