Thanks for that suggestion. I know about that workaround. But to speed up 
builds and to reduce disk space usage I would really like to use a shared repo.

I was wondering if there is any experience with the simple "file-lock” [1]. 
That has the advantage that it doesn’t need additional libraries (IIUC). 
Configuration should be as easy as setting “aether.syncContext.named.factory” 
to “file-lock” [2]. Unfortunately even Maven 3.8.6 still ships with Resolver 
1.6.3 [3] and it seems the suggested branch 
https://github.com/apache/maven/commits/maven-3.8.x-resolver-1.7.x is a bit 
outdated now…

Konrad

[1] - 
https://github.com/apache/maven-resolver/blob/2af7bff2a5238bf2597cd7a46b60a12779ee31a3/maven-resolver-named-locks/src/main/java/org/eclipse/aether/named/providers/FileLockNamedLockFactory.java
[2] - https://maven.apache.org/resolver/configuration.html
[3] - https://maven.apache.org/components/resolver/maven-3.8.x.html


> On 21. Jun 2022, at 10:01, Lasse Lindqvist <lasse.k.lindqv...@gmail.com> 
> wrote:
> 
> Hi. If you want to have pipeline build safely, you also have an
> alternative. With the withMaven clause (Pipeline Maven Integration Plugin)
> you can use something like
> 
> 
> 
> *withMaven(maven: 'Maven123', mavenLocalRepo:
> '$WORKSPACE/../../.m2/$EXECUTOR_NUMBER/repository') { // Run my Maven
> commands here*
> * }*
> It will use the workspace folder, travel out of it to a parent location and
> make a sibling .m2 folder and unique subfolder there based on the executor
> number. This way the folders used are executor specific and there will be
> no concurrency problems. The downside is that it will use more disk space
> because many artifacts are stored multiple times.
> 
> ti 21. kesäk. 2022 klo 10.51 Konrad Windszus (k...@apache.org) kirjoitti:
> 
>> Hi,
>> By default Jenkins uses a global Maven repository which is accessed in
>> parallel by multiple jobs running in dedicated VMs. To prevent race
>> conditions one should probably configure one of the distributed named locks
>> outlined in
>> https://maven.apache.org/resolver/maven-resolver-named-locks/index.html <
>> https://maven.apache.org/resolver/maven-resolver-named-locks/index.html>.
>> Is there any recommendation which one to pick and also some concrete hints
>> how to set that up with Jenkins (Pipelines, leveraging
>> https://www.jenkins.io/doc/pipeline/steps/pipeline-maven/ <
>> https://www.jenkins.io/doc/pipeline/steps/pipeline-maven/>)
>> 
>> Is ASF Jenkins using named locks already?
>> Thanks for any pointers
>> 
>> Konrad
>> 
>> 


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to