Personally I'd really like to hear about Atlassian and their efforts to
support Gradle in IDEA. Hans, way back when I first migrated you said
this work was under way. So where does that stand?
On 04/05/2011 01:10 PM, John Murph wrote:
I talked with Hans at DevNexus 2011 here in Atlanta this week (nice to
see you again, Hans) and he mentioned that I might need to remind you
guys about the key missing feature in the IDEA project generation
plugin. Right now (OK, last I looked), this plugin assumes that every
Gradle project will result in one and only one IDEA module (.iml file).
This does not work for us. First, I'll explain why and then I'll give a
more general argument for why I think this should change.
Our Problem:
We have many Gradle projects with multiple source sets. IDEA handles
main and test source sets just fine. But, we add a testFunctional
source set for functional tests (or tests that take too long to run and
we don't want to wait every time we build). This needs to be a separate
IDEA module (we put them all in a "Functional Test" module group) in
order to get dependencies handled correctly. Then, we have an api-main
source set that is the interface APIs for other modules to use (in OSGi
terms, the exported stuff). This needs to be a separate module in IDEA
as well. Then we might also have an api-open source set for interface
APIs that third-party developers are allowed to use to extend our
product. So, one Gradle project might become 4 IDEA modules. But
sometimes we have a Gradle project (one we call "legal" for instance)
that has no source code, just legal documents and a Gradle build script
that figures out with licenses go into which product distributions.
This is a Gradle project that might not need an IDEA module at all.
General Argument:
The one-module-per-project thing in the plugin really feels frameworky.
When that's what I want it's great, I don't need to say anything. When
it's not what I need, I have to fight it. Instead, the plugin should
give me tools to describe my needs and let me pick how to use them.
This is the solution for frameworkitis. That's not to say convention is
a bad thing, I think the plugin should assume a one-to-one mapping (it
is the most common), but because it's designed as tools I can change
that assumption. I should be able to remove any ideaModules, or add new
ideaModules. The mantra should be: toolkits, not frameworks.
Does all this make sense? Any hope of seeing it in a 1.0 milestone
release? I know you guys were (are?) working on the IDEA and Eclipse
project generation, so I decided to speak up again.
--
John Murph
Automated Logic Research Team
--
Steve Ebersole <[email protected]>
http://hibernate.org
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email