OK, good to know. Somehow, I always assumed that Maven was actually handling concurrency safely. Too bad that we have to waste extra space to handle this, but at least there are easy workarounds.

Cheers
Guillaume


Le 7/03/2012 11:41, Srinath C a écrit :
Always use a different local repositories for different projects in Jenkins.
You can do this by setting the system property
-Dmaven.local.repo={project_workspace_dir}

Regards,
Srinath.


On Wed, Mar 7, 2012 at 1:59 PM, Jörg Schaible
<[email protected]>wrote:

Hi Guillaume,

Guillaume Polet wrote:

Dear all,

I was having some doubts regarding Maven's ability to handle properly
concurrent builds. Lately, I had several builds of our project that
failed and it seemed that it was due to interferences between concurrent
builds of the same version of the same project.

I have a jenkins server which have 6 different builds:
* 1 for continuous build (which runs tests but does not deploy the
artifacts)
* 1 for nightly build
* 1 for releases (or almost release, ie, the pom is still in SNAPSHOT
version but could become a release)
All this is multiplied by two, because I have two versions (on 2
different branches).

So I had 2 questions:
1. Can/Does Maven support concurrent builds of the same version of the
same project?
Not out of the box. Since by default both builds will use the same local
repository creating the same artifacts at same time, the artifacts in the
repository are likely to be corrupted.

If yes, do I need to do something to achieve this?
Use separate local repositories, it can be defined using separate
settings.xml files or by call with a system property. Actually I don't know
if Jenkins already supports something like this, because it's a general
problem, see below.

If not,
is it something that Maven developers are considering?
It's not the first time this problem has been risen.

2. Can/Does Maven support concurrent builds of different versions of the
same project?
They may still corrupt the metadata.xml files, but it is less likely and
has
AFAICS less consequences.

However, every concurrent build may corrupt a shared local repository,
because both builds may download the same artifacts at same time. A
scenario
where this might happen is when you upgrade versions (e.g. of plugins) in a
common master-pom and start two parallel builds then. Actually I am not
sure
if you're safe when running one Maven build in parallel mode. A repository
manager like Nexus might prevent this scenario by detecting the same
request, but again I am not sure if it does.

BTW: This is also the reason why you should never share a local repository
with a network mount by multiple users.


Cheers,
Guillaume


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]




---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to