On Tuesday 02 January 2007 17:41, Vincent Massol wrote:
When I checked
out xwiki/trunk as a project in eclipse and I enable the
maven2 plugin, it starts downloading a bunch of stuff and it complains
about 2 items (see log below). Is that normal? Did I checked out
everything I need?
That's because I haven't published these artifacts in the xwiki remote
repo, so you have to build them before they can be used by a module
requiring them.
The full build is available when you check xwiki/trunks-dev but this will
only work for xwiki committers as it required svn+ssh access. I'll create a
trunks-users for you if you want to try it out.
Curiously I could check something out. But my version only contains pom.xml
and a soft link to a pom folder.
Part of the confusion comes from the many directories under svnroot/xwiki. I
see:
- pom
- trunk-devs
- trunk-users (thank you)
- vendor
- xwiki
- xwiki-{apps,client,plugins,sandbox,tools}
Which one(s) do I need? Only trunk-users?
Could we document briefly what each folder is holding and what to check out?
Is everybody
using maven2 or ant or something else?
I am but it's not finished. That said it's building fine. It's just that
tests have not all been moved yet, some modules have no maven2 build and I
haven't fully tested the generated WAR yet so it may be missing some
runtime dependencies.
A few pointers would be nice. Thanks.
Sure. We can start workong on this together if you want and document it as
we progress.
I can do that from the point of view of the perfect maven2 newbie :)
(I still
wonder why it has to download stuff since everything is
available in the svn repository.
Well that's how maven works... :-) Each module has binary dependencies and
each module produces artifacts which are depended upon by other modules.
When you build with mvn install generated artifacts are put in your local
repo (mvn deploy deploys them in the remote repo). They are then available
to other modules.
You can of course build everything from sources if you cd to the top level
of the source tree (trunks-dev for now, see above).
To better understand this see
http://blogs.codehaus.org/people/vmassol/archives/think_tank.html#000953_bi
n ary_dependency_builds
Yes, very interesting.
When dealing with dependencies in the past I used the ant svn task to update
the subproject local image as a prerequisite for the build. But I see that
using a continuous build to generate working libraries once and making them
available on a server is much more efficient (if you trust the binaries that
is ; but then you already trust the source so that nullifies the security
argument anyway).
Actually it
would be a good idea to
keep the libraries aside, in another folder, if they have to be re-used
in different places but then why keeping them in the repository as
well?)
Jars in libs/ will be removed when we remove the Ant build as Maven2
handles this with the notion of repositories (local and remote).
Now I understand. Thanks.