Travis made this change a while ago - https://github.com/pantsbuild/pants/commit/a16222834f4ca1cb7122ef8b49563d3b940136fc
It got lost in the big refactor. Resurrecting it again.
From a previous email (from Travis), for context:
Hey all -
Today I experimented with creating a "thin" IntelliJ project file. Indexing goes from 4min --> 2m40s, or ~33% faster.
The general strategy is rather than having one content root set to buildroot, we have a content root per target. This restricts the files IntelliJ looks at to just the stuff actually used by the target you generated a project for. My "sketch" is https://github.com/pantsbuild/pants/commit/a16222834f4ca1cb7122ef8b49563d3b940136fc and if we like this approach I can clean things up.
To summarize, with minimal effort we can:
* Reduce project indexing time by ~33% (4m --> 2m40s) by limiting the stuff intellij looks at.
Local CI passes.
Travis -> https://travis-ci.org/pantsbuild/pants/builds/31466950
Generated idea project:
$PANTS_DEV=1 ./pants goal idea src/scala::
testing this on internal Twitter projects to ascertain indexing time improvements.
Seems like there might be some source missing? Will the existing pants goal idea invoke this template multiple times?
just so I understand, we don't need these any more because the package prefix is no longer starting from the root of the repo so it won't accidentally suck in .pants.d. However One beneficial thing about including .pants.d is that you get the generated source indexed. Do you still get that with this refactor?
I ran this change against our repo and the way the projects are displayed in the project pane is a bit confusing, the same name is repeated over and over, once for each java/src, test/src, resources/src, protobuf/src. (we have a maven layout) That seems extremely weird.