[GRADLE-1174] The IdeaPlugin defines all of $buildDir as excluded Created: 15/Oct/10 Updated: 04/Jan/13 Resolved: 16/Mar/12 |
|
Status: | Resolved |
Project: | Gradle |
Affects Version/s: | None |
Fix Version/s: | None |
Type: | Bug | ||
Reporter: | Steve Ebersole | Assignee: | Szczepan Faber |
Resolution: | Not A Bug | Votes: | 0 |
Description |
The IdeaPlugin defines all of $buildDir as excluded which messes up attempts to use, for example, generated sources such as from Antlr which writes to $buildDir/generated-src/antlr/. Therefore declarations such as ideaModule {
sourceDirs.add( file( '$buildDir/generated-src/antlr/main' ) )
}
have no effect |
Comments |
Comment by Szczepan Faber [ 04/Apr/11 ] |
I think following workarounds should help: ideaModule { //manipulate the default excludeDirs: excludeDirs -= "someFolderIDontWantToExclude" //or prepare your own list of excludeDirs: excludeDirs = [project.file('.gradle'), "$project.buildDir/excludeMe"] as Set } |
Comment by Steve Ebersole [ 04/Apr/11 ] |
Thus far I have tried the following unsuccessfully:
So what is the magic incantation for that? (we override buildDir to target) |
Comment by Steve Ebersole [ 04/Apr/11 ] |
Heck, I even tried the other form and Gradle is still excluding buildDir: excludeDirs = [ project.file('.gradle'), project.file('target/classes'), project.file('target/dependency-cache'), project.file('target/libs'), project.file('target/reports'), project.file('target/test-results'), project.file('target/temp'), project.file('target/tmp') ] as Set So this is obviously controlled "elsewhere, elusive". |
Comment by Szczepan Faber [ 05/Apr/11 ] |
It's because the idea/eclipse tasks are trying to merge new settings to the existing config files. Either of the workarounds should work given that you delete the *.iml file beforehand or run 'cleanIdeaModule'. Watch out not to run 'cleanIdea' because it wipes all configs, including workspace settings (*.iws) that may contain some useful stuff (like shelved changes, bookmarks, copyright profiles etc.) You can disable merging exclude dirs so that devs don't have to delete the *.imls behorehand using beforeConfigured/whenConfigured hooks: ideaModule { beforeConfigured { module -> //applied after content read from file //but before merging with info from build.gradle module.excludeFolders.clear() } } More about beforeConfigured/whenConfigured hooks is in the guide |
Comment by Steve Ebersole [ 11/Apr/11 ] |
Just so I am clear... If there are existing exludes found, Gradle decides to "merge" by excluding the entire build dir rather than merging the individual directories? This is not a case, for example, where I have previously had the build dir excluded and Gradle is just merging into that setup. No, it is actively deciding to exclude all of build dir. |
Comment by Szczepan Faber [ 11/Apr/11 ] |
>If there are existing exludes found, Gradle decides to "merge" by excluding the entire build dir rather than merging the individual directories? Here's how merging works: the exclude folders are kept in a Set. When ideaModule task executes it reads the existing *.iml contents and feeds the set with currently configured excludes. Then the user's customizations (ideaModule.excludeDirs) from build.gradle are added to that set. Does it match the behavior you observe? |
Comment by Steve Ebersole [ 11/Apr/11 ] |
No, not at all. I have initially a properly "adjusted" IntelliJ project. When I try to run gradle idea against that I end up with build dir (target in my case) as an exclude. Btw, not sure why or how it fits in, but manually clearing the excludes 'beforeConfigured' does seem to work. |
Comment by Szczepan Faber [ 11/Apr/11 ] |
Ok, I already cloned hibernate-core, I will take closer look and let you know |
Comment by Szczepan Faber [ 12/Apr/11 ] |
Steve, take a look at my fork of hibernate-core: https://github.com/szczepiq/hibernate-core/commit/bfd95b476c1fdb63d06c29c833e58bcd66515a8c If you have questions we can discuss using github code review features |
Comment by Szczepan Faber [ 22/Jul/11 ] |
I'd like to close this issue because I'm not sure what needs to be fixed Here's the summary of excluded dirs behavior of idea plugin (as of today):
|
Comment by Szczepan Faber [ 16/Mar/12 ] |
If that's ok I'm closing this issue. Please see my previous comment. |