ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sam Berlin <sber...@gmail.com>
Subject Re: Multi-Project IvyDE
Date Tue, 31 Mar 2009 12:29:19 GMT
Hi Nicolas,

Thanks for the reply.  There's no separate place to do this in m2eclipse --
the plugin just "makes it work".  That is, if you attempt to import a Maven
Project that has a multi-module pom, it will automatically create multiple
projects.  (The same thing with 'Checkout as Maven Project' from CVS or
Subclipse integration.)

For example, the HttpComponents' HttpClient top-level project is a
multi-module project containing httpclient, httpclient-osgi, and httpmime.
If you add 'http://svn.apache.org/repos/asf/httpcomponents/httpclient' as an
SVN Repository, then right-click on 'trunk' and choose 'Check out as Maven
Project', it will create 4 projects: httpcomponents-client, httpclient,
httpclient-osgi, and httpmime.  It chooses the names from the pom.xml
files.  The first project is the top-level project and is really just a
'commit space' to let you commit changes to all the modules at once (since
Eclipse doesn't do well with commiting over multiple projects).  The other 3
are projects for each subproject, with their own dependencies.

Similarly, if you already had the code checked out somewhere on disk ( 'svn
co http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunkhttpclient'
) and you choose File -> Import, General -> Maven Projects, and
choose the checkout location as the root directory, m2eclipse will
immediately list the parent pom and the module poms and give you an option
of checking/unchecking which projects you'd like to create.  If you leave
the default options, it creates the projects in the same way as 'Checkout as
Maven Project' did.

Your workarounds are doable, but require more steps from the developer.  I'm
hoping to make this work for an open-source project, and would like to
create as little steps as possible for new developers/users.  Requiring a
global setting is definitely out of the question.  If ultimately IvyDE can
integrate with CVS & SVN and add 'Checkout IvyDE Project', it would allow a
developer to use Eclipse from start-to-finish to get compiling code with
proper dependencies.

Thanks,
 Sam

2009/3/31 Nicolas Lalevée <nicolas.lalevee@hibnet.org>

> On lundi 30 mars 2009 19:34:33 Sam Berlin wrote:
> > Hi All,
> >
> > We have a large multi-project repository that currently uses Ivy+Ant and
> > works very well.  I'm looking into using IvyDE, but setting it up for a
> > large multi-project repository seems to be a real pain.
> >
> > An ivy.xml file exists in each project, and a shared ivysettings exists
> > under the 'common' project's directory.  I've been able to configure
> IvyDE
> > properly by using "project:///ivysettings.xml" in the common project's
> > IvyDE properties and 'project://common-project-name/ivysettings.xml' in
> > each other module's IvyDE properties.  This works, but is a real pain to
> > setup.
> >
> > What I'd like to do is something similar to the m2eclipse plugin, where
> > they take the parent of a multi-module pom and the plugin automatically
> > creates a project for each module.  In Ivy-land, this would be similar to
> > subant after ivy:buildlist within Ant.
> >
> > Would you be amenable to having some kind of 'Checkout as Ivy Project' or
> > 'Create Ivy Project' that scans for subdirectories containing ivy.xml
> > (perhaps offering options similar to buildlist) and then automatically
> > creating each project it finds?  The setup wizard could ask where a
> shared
> > ivysettings is for each project and automatically fill in the properties
> > for each project.  Something like this would be an amazing step in in
> terms
> > of usability of IvyDE for multi-project repositories.
> >
> > I can investigate into how m2eclipse does this and try and create
> something
> > similar for IvyDE if people think this is a feature that would be
> accepted.
>
> I tried to look into m2eclipse where is that feature and I didn't see any
> "import several maven project", or "create several maven project". I don't
> daily use maven so I may have missed something. Unless you talked about the
> eclipse:eclipse maven goal ?
>
> The way I managed it in our project is by using an ant target. As ant
> always
> knows where is the ivysettings for the current project, I made a target
> that
> create a .classpath for eclipse, .classpath which includes a reference to
> the
> IvyDE plugin. And then on the upper level, I can have a target that for
> each
> project launch that "eclipse-ivyde" target. The flaw is that the .classpath
> cannot be shared between developpers, but my experience tells me that this
> is
> generally a good idea.
>
> Another solution is to use the global settings of IvyDE. In your global
> preference of IvyDE, set an ivysettings to your:
> project://common-project-name/ivysettings.xml
> And then every of your sub project would be configured to use the workspace
> settings. The disadvantage is that it doesn't work if you have sevral "big
> project" with different ivysettings in workspace.
>
> Nicolas
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message