[GRADLE-1041] idea plugin for dir-based configuration Created: 19/Jul/10 Updated: 08/Feb/17 Resolved: 08/Feb/17 |
|
Status: | Resolved |
Project: | Gradle |
Affects Version/s: | 0.9 |
Fix Version/s: | None |
Type: | Improvement | ||
Reporter: | Markus Schlichting | Assignee: | Unassigned |
Resolution: | Duplicate | Votes: | 41 |
Attachments: | GradlePatchIdeaPluginDirectorybasedConfig.patch |
Description |
Hi, we came across the need to use the directory based configuration of an IDEA for our project. As we really like the feature of generated module files using the dependencies declared in gradle, I looked into an extension of the idea plugin to write the needed information to the .idea folder instead of the .ipr file. A first attempt to do so is attached to this ticket as an patch. for example: apply plugin: 'idea' By now the plugin generates only the modules.xml (as this seems to be the only one really needed by idea) and creates/updates the misc.xml file as this is where some of the basic project information is stored. What do you think of this? Any feedback is appreciated as I'd love to see the support for directory based idea configuration in gradle thank you |
Comments |
Comment by Hans Dockter [ 29/Jul/10 ] |
@Markus I'm very keen to support the directory structure. I did not manage to have a look at this for 0.9. But I will check your patch soon. Many thx. |
Comment by Steve Ebersole [ 15/Oct/10 ] |
+1 I cannot think of a "need" for it, but I definitely find the directory-based setup much cleaner. |
Comment by Etienne Studer [ 02/Mar/11 ] |
The .idea project structure is very beneficial for projects that involve multiple users. The .ipr file stores too much user-specific information. With the .idea approach, the .ipr is basically split up into multiple files and only those that are applicable to all users are commited to the repository. |
Comment by Johnny Boy [ 14/Nov/11 ] |
The .idea project structure has been the default for a long time now. |
Comment by Etienne Studer [ 14/Nov/11 ] |
I totally agree. I find this should really make it into 1.0. |
Comment by Aleksey Lagoshin [ 07/May/12 ] |
Almost two years have passed and Gradle still uses .ipr. Any news on this? All our projects use .idea approach... |
Comment by Szczepan Faber [ 08/May/12 ] |
We'd like to add support for this however other things turned out more important. Thanks a lot for the reminder! |
Comment by Adam Murdoch [ 08/May/12 ] |
The native Gradle integration in IDEA uses the .idea directory format, so you might potentially use that as a 'workaround', rather than using the `gradle idea` task. They are both driven from the same model, so you should end up with the same results. |
Comment by Luca Cavanna [ 09/May/12 ] |
As far as I know with the native Gradle integration in IDEA you still need to reimport the project every time you add or remove a dependency. That's the reason why some people use the idea plugin: to keep the idea configuration in sync with the gradle build files. But it would be better if the plugin worked with .idea files. |
Comment by Adam Murdoch [ 09/May/12 ] |
There's no question that the plugin should work with .idea files. The native Gradle integration is improving all the time. For example, in IDEA 11.1 you can resynchronise the dependencies without reimporting the project. And we're working with the jetbrains folks to make this better. |
Comment by Steve Ebersole [ 14/May/12 ] |
Adam, but it still cannot read projects like Hibernate. And even with 11.1, I have still had trouble getting it to load simpler projects I work on. |
Comment by Phill [ 03/Nov/12 ] |
IDEA native Gradle integration is still painful - it seems to spend inordinate amounts of time frequently refreshing the gradle dependencies even on the simplest project and does not handle version changes to the dependencies without tedious manual intervention. It also gets in a real mess if the project files are shared via SCM and the artefacts are in different places in the Gradle cache. Would love to see .idea project support so I can turn off JetGradle in IDEA. |
Comment by Andrew Kowal [ 18/Jul/13 ] |
Guys, any news on this? |
Comment by Adam Murdoch [ 18/Jul/13 ] |
@Andrew, not yet. We'd welcome a contribution for this, if you (or anyone else) is interested in helping out. |
Comment by Anton Arhipov [ 27/Oct/13 ] |
It is actually very easy to workaround. The .idea directory structure requires only modules.xml file that is identical to the *.ipr file that idea plugin generates. So I could just use this simple task to create directory based structure: task setup { dependsOn ideaModule, ideaProject doLast { copy { from '.' into '.idea/' include '*.ipr' rename { "modules.xml" } } project.delete "${project.name}.ipr" } } The task could be improved to better support the cleanup of the outputs however. Another option is just use the idea plugin tasks the first time and once project is opened in the IDE, do "File -> Save as directory based project" However, the plugin could just generate .idea instead of *.ipr by default and just drop *ipr support for good. |
Comment by Drew Bailey [ 09/Jul/14 ] |
Just wanted to poke this since it's been a while since the last update and has been open for almost four years now (understandably so). |
Comment by Sönke Sothmann [ 22/Apr/15 ] |
Any progress on this one? |
Comment by Marcel Trautwein [ 25/Feb/16 ] |
@https://gist.github.com/childnode/12757be70b2895a1eed0 to also catch up the .iws file, but this solution doesn't work. The language level is still not set correctly in IDEa 15. Any ideas? |
Comment by Benjamin Muschko [ 15/Nov/16 ] |
As announced on the Gradle blog we are planning to completely migrate issues from JIRA to GitHub. We intend to prioritize issues that are actionable and impactful while working more closely with the community. Many of our JIRA issues are inactionable or irrelevant. We would like to request your help to ensure we can appropriately prioritize JIRA issues you’ve contributed to. Please confirm that you still advocate for your JIRA issue before December 10th, 2016 by:
We look forward to collaborating with you more closely on GitHub. Thank you for your contribution to Gradle! |
Comment by Benjamin Muschko [ 08/Feb/17 ] |
The issue is now tracked here: https://github.com/gradle/gradle/issues/1366 |