I encountered a quirky problem:
I used "mvn deploy
" (Maven 3.3.9, Jenkins 2.45, Nexus 2.12.0) to deploy a snapshot jar to my nexus in jenkins, result as below (suppose the jar name is userdao.jar
):
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/userdao-1.0-20170512.111840-6.jar
Uploaded: myNexusIp/nexus/content/repositories/snapshots/xxx/1.0-SNAPSHOT/maven-metadata.xml
The build was successful and everything was OK.
But when I built another maven project that depended above userdao.jar
, error occurred as below:
Could not find artifact userdao:jar:1.0-20170512.111840-6 in public (http://myNexusIp/nexus/content/groups/public/)
After positioning I found that the timestamp in maven-metadata.xml
in the nexus was more than a second than the actual jar's timestamp!
As below:
maven-metadata.xml
: 1.0-20170512.111840-6Because userdao-1.0-20170512.111840-6.jar
did not exist in Nexus, the
right one should be userdao-1.0-20170512.111839-6.jar
, so it errors.
Who can tell me why and how to resolve it?
This has been confirmed a maven-3.5 issue https://issues.apache.org/jira/browse/MNG-6240 and a fixed applied. The release of maven-3.5.1 with the fix is voted here https://www.mail-archive.com/[email protected]/msg114783.html
I actually found the opposite. After upgrading from Maven 3.3.9 to 3.5.0 I could reliably deploy artifacts where by the time stamps appearing in the metadata.xml files on Nexus were incorrect compared to the actual files that were deployed.
By downgrading (back to 3.3.9) everything worked correctly. The metadata.xml versions and timestamps matched always.
Perhaps it's something to do with the Maven 3.5.0 upgrade to remove Aether?
The first thing to try is to rebuild your metadata on the repo where you uploaded your snapshot artifact.
See "Managing Scheduled Tasks"
Rebuild Maven Metadata Files
This task will rebuild the
maven-metadata.xml
files with the correct information and will also validate the checksums (.md5
/.sha1
) for all files in the specified Repository/Group.
Typically this task is run manually to repair a corrupted repository.
I updated maven from 3.3.9 to 3.5.0, found that the maven-metadata.xml was uploaded once and the issue was resolved! So I guess this is a bug in maven 3.3.9, my current solution is updating maven to 3.5.0.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With