You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Sander Nieuwenhuizen <mu...@gmail.com> on 2007/02/24 21:42:57 UTC
Multiple developer dependency management
I'm currently busy with migrating ant projects to maven and I stumbled upon
the following issue. My team contains of 5 people and we're developing using
a component-based architecture. Let's take the following example to
illustrate my question.
We've got a service project, named CommonServices, and a web project, say
MyWebProject. We develop in parallel on separate functionality. Developer A
wants to add a new Service (serviceA) to the service project. In the mean
time, developer B wants to add a serviceB. The two services aren't dependent
on each other. Both developers have ofcourse unit tested their own code and
next... they want to finally test it via the web project before checking the
service code in to scm.
The local repository is set up on a network drive, so each developer is
using the exact same repository. How can we setup maven to fully isolate the
two development paths? Snapshot jars are installed on the shared repository,
which would mean the two developers would interfere with each other. For
example, I would like to be able to set up a separate repository with full
isolation for each developer.
How can I create such an environment?
--
View this message in context: http://www.nabble.com/Multiple-developer-dependency-management-tf3284959s177.html#a9137608
Sent from the Maven - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [m2] Multiple developer dependency management
Posted by Sander Nieuwenhuizen <mu...@gmail.com>.
I'm reading the http://www.mergere.com/m2book_download.jsp "Better Builds
with Maven" document (http://www.mergere.com/m2book_download.jsp). I can
surely recommend this book to every Maven user.
While migrating our Ant projects to Maven 2 I have also setup Continuum for
our existing Ant projects. Can't believe how simple it is. The Maven
dependency management as such is rather straightforward. Currently reading
into using Maven productively from a team point-of-view and release
management (i.e. tagging in scm, making reproducable builds, creating
documentation, ...). Fun tool, but rather overwhelming at first. In the
Ant-world it is nice that it is you that's in full control, but that's also
the drawback. The nice thing about Maven is that the whole process has
already been designed and standardized and the availability of dozens of
plugins. But then comes the challenge to adopt these ideas.... :)
Thanks again,
Sander
--
View this message in context: http://www.nabble.com/Multiple-developer-dependency-management-tf3284959s177.html#a9163429
Sent from the Maven - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [m2] Multiple developer dependency management
Posted by Wendy Smoak <ws...@gmail.com>.
On 2/26/07, Jo Vandermeeren <jo...@gmail.com> wrote:
> You'll want to setup a company-wide shared repository via ftp/scp/whatever
> and put a webserver in front of it.
> This will be the repository where developers - after defining the repository
> in settings.xml or pom.xml - will automatically look for artifact updates
> and missing dependency libraries.
If there is a shared filesystem available to all developers, the
"remote" repo could also be accessed with file:// urls, without
getting a webserver involved.
--
Wendy
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: [m2] Multiple developer dependency management
Posted by Jo Vandermeeren <jo...@gmail.com>.
Hi Sander,
Glad you figured it out. Local repositories are for local use..
Since you're setting up a maven environment for your teams, here are some
tips..
You'll want to setup a company-wide shared repository via ftp/scp/whatever
and put a webserver in front of it.
This will be the repository where developers - after defining the repository
in settings.xml or pom.xml - will automatically look for artifact updates
and missing dependency libraries.
It's a good idea to setup a snapshot repository as well, you can can
periodically clear this repository since frequent snapshot installs can
quickly fill up the disk quota.
With the webserver for your shared repositories in place, you have
everything needed to host your maven project's website and QA reports..
So you might want to setup distributionManagement in your projects for this
as well..
Keeps the docs in sync and the project managers, testers, implementors,
etc.. happy ;)
You may also want to take a look at maven-proxy to centralize the repository
access of released artifacts for your teams.
This reduces per-user/project repository configuration and internet access
for library downloads..
And while you're at it.. You really want to check out continuum at
http://maven.apache.org/continuum/.
Continuous integration just feels right and easy with maven, it can
automatically keep your website, shared artifacts and container-deployed
applications up-to-date with minor effort..
Happy hacking!
Jo
On 2/26/07, Sander Nieuwenhuizen <mu...@gmail.com> wrote:
>
>
> Hi Jo,
>
> Thanks for the help. I thought the local repository was from a team
> perspective instead of per developer.
>
> Cheers,
>
> Sander
> --
> View this message in context:
> http://www.nabble.com/Multiple-developer-dependency-management-tf3284959s177.html#a9162023
> Sent from the Maven - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
Re: [m2] Multiple developer dependency management
Posted by Sander Nieuwenhuizen <mu...@gmail.com>.
Hi Jo,
Thanks for the help. I thought the local repository was from a team
perspective instead of per developer.
Cheers,
Sander
--
View this message in context: http://www.nabble.com/Multiple-developer-dependency-management-tf3284959s177.html#a9162023
Sent from the Maven - Users mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org
Re: Multiple developer dependency management
Posted by Jo Vandermeeren <jo...@gmail.com>.
Hi Sander,
What's the problem with the standard maven setup?
Just don't place the local repository on a network drive, but give each
developer it's own local repository...
That's what it's for..
Developer A can easily install his new service to his own local repository
and run a test build with it as dependency of another module.
If the test build turns out to be alright, they can check their code in into
scm.
Finally, let a CI tool, like continuum, take care of building and deploying
the artifacts to the shared repository and/or updating the project website..
These tools always update from scm first before starting a new build.. This
way, you don't have to worry about developers deploying unreproducible
builds because they did not check in their code into scm..
If you want to split snapshot releases and "real" releases.. define a shared
snapshot repository..
I don't see why you would even share the local repository.. If you want
isolation of a local development environment, you're better of sticking with
the standard maven setup.
Good luck..
Jo
On 2/24/07, Sander Nieuwenhuizen <mu...@gmail.com> wrote:
>
>
> I'm currently busy with migrating ant projects to maven and I stumbled
> upon
> the following issue. My team contains of 5 people and we're developing
> using
> a component-based architecture. Let's take the following example to
> illustrate my question.
>
> We've got a service project, named CommonServices, and a web project, say
> MyWebProject. We develop in parallel on separate functionality. Developer
> A
> wants to add a new Service (serviceA) to the service project. In the mean
> time, developer B wants to add a serviceB. The two services aren't
> dependent
> on each other. Both developers have ofcourse unit tested their own code
> and
> next... they want to finally test it via the web project before checking
> the
> service code in to scm.
>
> The local repository is set up on a network drive, so each developer is
> using the exact same repository. How can we setup maven to fully isolate
> the
> two development paths? Snapshot jars are installed on the shared
> repository,
> which would mean the two developers would interfere with each other. For
> example, I would like to be able to set up a separate repository with full
> isolation for each developer.
>
> How can I create such an environment?
> --
> View this message in context:
> http://www.nabble.com/Multiple-developer-dependency-management-tf3284959s177.html#a9137608
> Sent from the Maven - Users mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>