Skip to content

Instantly share code, notes, and snippets.

View gnodet's full-sized avatar

Guillaume Nodet gnodet

  • Red Hat
  • Caen, France
View GitHub Profile
Howdy,
This is just a short newsflash about upcoming planned releases related to Maven.
Recently we got a huge spike in plugin releases, with various fixes and improvements. I will not enumerate all of them here, just use `mvn versions:display-plugin-updates` to pick them up ;) (and more to come).
What I do want to share is about our upcoming Maven releases...
Maven 3.9.7 is nearing (read: coming soon), and will have an important Resolver update and other important fixes. Most importantly, the file-locks are getting nice improvement (feedback VERY welcome).
At the same time, we plan to release Maven Daemon (m39) as well, to have it aligned with Maven 3.9.7: with many bug fixes and improvements/alignments to "how Maven 3 behave". Our goal is to make the two (mvn and mvnd) interchangeable on workstations.
Next, Maven 4 is turning beta, so the next release will be beta-1! And again, same thing for Maven Damon (m40), we will have a release that will include Maven 4 beta-1.
[main] [DEBUG] Created adapter factory; available factories [file-lock, rwlock-local, semaphore-local, noop]; available name mappers [discriminating, file-gav, file-hgav, file-static, gav, static]
[main] [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/gnodet/.m2/repository
[main] [INFO] Scanning for projects...
[pool-1-thread-10] [DEBUG] Creating adapter using nameMapper 'file-gav' and factory 'file-lock'
[pool-1-thread-10] [TRACE] Need shared lock for [org.apache.maven:maven-parent:41] from file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock
[pool-1-thread-10] [TRACE] Attempt 1: Acquire shared lock from file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock
[pool-1-thread-10] [TRACE] Unlocked and closed shared lock of NamedLockKey{name='file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock', resources=[org.apache.maven:maven-parent:41]}
[pool-1-thread-10] [TRACE] Nee
[main] [DEBUG] Created adapter factory; available factories [file-lock, rwlock-local, semaphore-local, noop]; available name mappers [discriminating, file-gav, file-hgav, file-static, gav, static]
[main] [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/gnodet/.m2/repository
[main] [INFO] Scanning for projects...
[pool-1-thread-10] [DEBUG] Creating adapter using nameMapper 'file-gav' and factory 'file-lock'
[pool-1-thread-10] [TRACE] Need shared lock for [org.apache.maven:maven-parent:41] from file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock
[pool-1-thread-10] [TRACE] Attempt 1: Acquire shared lock from file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock
[pool-1-thread-10] [TRACE] Unlocked and closed shared lock of NamedLockKey{name='file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock', resources=[org.apache.maven:maven-parent:41]}
[pool-1-thread-10] [TRACE] Nee
➜ maven git:(MNG-8091) ./apache-maven/target/apache-maven-4.0.0-alpha-14-SNAPSHOT/bin/mvn -Daether.syncContext.named.factory=file-lock -Dorg.slf4j.simpleLogger.log.org.eclipse.aether=TRACE foo
[DEBUG] Created adapter factory; available factories [file-lock, rwlock-local, semaphore-local, noop]; available name mappers [discriminating, file-gav, file-hgav, file-static, gav, static]
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /Users/gnodet/.m2/repository
[INFO] Scanning for projects...
[DEBUG] Creating adapter using nameMapper 'file-gav' and factory 'file-lock'
[TRACE] Need shared lock for [org.apache.maven:maven-parent:41] from file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock
[TRACE] Attempt 1: Acquire shared lock from file:///Users/gnodet/.m2/repository/.locks/artifact~org.apache.maven~maven-parent~41.lock
[TRACE] Unlocked and closed shared lock of NamedLockKey{name='file:///Users/gnodet/.m2/repository/.locks/artifact~org.apa
@gnodet
gnodet / gist:a2e8131df2448d7c27adcc2ad37674d1
Created March 22, 2024 15:42
Using records in the maven 4 api
// =================== DO NOT EDIT THIS FILE ====================
// Generated by Modello Velocity from model.vm
// template, any modifications will be overwritten.
// ==============================================================
package org.apache.maven.api.model;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
return asList(
phase("initialize",
phase("validate")),
phase("build",
after("initialize"),
phase("sources",
phase("generate-sources"),
phase("process-sources", after("generate-sources"))),
phase("resources",
phase("generate-resources"),
"ForkJoinPool-1-worker-1 [
- building: /Users/gnodet/work/git/quarkus/pom.xml
- building: /Users/gnodet/work/git/quarkus/build-parent/pom.xml
- load-cache(import): io.quarkus:quarkus-bom:999-SNAPSHOT
- building: /Users/gnodet/work/git/quarkus/extensions/pom.xml
- building: /Users/gnodet/work/git/quarkus/extensions/security-webauthn/pom.xml
- load-cache(raw): /Users/gnodet/work/git/quarkus/extensions/security-webauthn/deployment/pom.xml
- read-model(raw): /Users/gnodet/work/git/quarkus/extensions/security-webauthn/deployment/pom.xml
- load-cache(raw): /Users/gnodet/work/git/quarkus/extensions/security-webauthn/runtime/pom.xml
- read-model(raw): /Users/gnodet/work/git/quarkus/extensions/security-webauthn/runtime/pom.xml
[INFO] --- invoker:3.5.1:install (integration-test) @ quarkus-enforcer-rules ---
Downloaded from central: http://old-broken-macbook-pro.local:8082/artifactory/maven-remote/com/github/javaparser/javaparser-core/3.24.8/javaparser-core-3.24.8.jar (1.3 MB at 1.4 MB/s)
Downloading from jboss-public-repository: https://repository.jboss.org/nexus/content/groups/public/org/apache/groovy/groovy/4.0.11/groovy-4.0.11.pom
Downloading from jboss-public-repository: https://repository.jboss.org/nexus/content/groups/public/org/apache/maven/doxia/doxia-sink-api/1.12.0/doxia-sink-api-1.12.0.pom
Downloading from jboss-public-repository: https://repository.jboss.org/nexus/content/groups/public/org/apache/maven/shared/maven-invoker/3.2.0/maven-invoker-3.2.0.pom
Downloading from jboss-public-repository: https://repository.jboss.org/nexus/content/groups/public/org/apache/maven/reporting/maven-reporting-api/3.1.1/maven-reporting-api-3.1.1.pom
Downloading from central: http://old-broken-macbook-pro.local:8082/artifactory/maven-remote
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: The following artifacts could not be resolved: org.apache.maven:maven-settings:pom:2.2.1 (absent): Could not transfer artifact org.apache.maven:maven-settings:pom:2.2.1 from/to central (https://old-broken-macbook-pro.local:8082/artifactory/maven-remote/): Received fatal alert: unrecognized_name
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:409)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:189)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:170)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:169)
at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:110)
at org.eclipse.aether.internal.impl.collect.bf.BfDep
Caused by: org.apache.maven.api.services.VersionParserException: Unable to parse version range: 1.0-SNAPSHOT
at org.apache.maven.repository.internal.DefaultModelVersionParser$DefaultVersionRange.<init>(DefaultModelVersionParser.java:117)
at org.apache.maven.repository.internal.DefaultModelVersionParser.parseVersionRange(DefaultModelVersionParser.java:55)
at org.apache.maven.internal.impl.DefaultVersionParser.parseVersionRange(DefaultVersionParser.java:56)
at org.apache.maven.internal.impl.AbstractSession.parseVersionRange(AbstractSession.java:504)
at org.apache.maven.internal.impl.DefaultDependencyCoordinate.getVersion(DefaultDependencyCoordinate.java:67)
at org.apache.maven.internal.impl.AbstractSession.toArtifact(AbstractSession.java:154)
at org.apache.maven.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:59)
at org.apache.maven.api.services.ArtifactResolver.resolve(ArtifactResolver.java:54)
at org.apache.maven.internal.impl.AbstractSession.reso