我有一个Nexus 3,我从Jenkins部署了一些工件,使用了" mvn deploy"。我有很多模块500+。构建看起来像这样:
mvn clean package -DskipTests -DskipITs -T C1
mvn install -DskipTests -DskipITs -T C1
mvn deploy --quiet -DskipTests -DskipITs -Dmaven.validate.skip=true -Dmaven.compile.skip=true -Dmaven.test.skip=true -Dmaven.package.skip=true -Dmaven.integration-test.skip=true -Dmaven.verify.skip=true -T C1
问题是我的工件有时会有时间戳,而元数据有不同的时间戳。通常有1秒的差异。
这是我在https://mynexus.com/repository/snapshots/com/company/my-artifact/1.0.0-SNAPSHOT/maven-metadata.xml
的nexus中看到的<?xml version="1.0" encoding="UTF-8"?>
<metadata modelVersion="1.1.0">
<groupId>com.company</groupId>
<artifactId>my-artifact</artifactId>
<version>1.0.0-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20170613.140447</timestamp>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20170613140447</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>war</extension>
<value>1.0.0-20170613.140447-1</value>
<updated>20170613140447</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0.0-20170613.140447-1</value>
<updated>20170613140447</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
判断maven-metadata.xml,工件URL应为:
但事实并非如此。相反,工件位于此位置:
mvn --version OpenJDK 64位服务器VM Apache Maven 3.5.0(ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T21:39:06 + 02:00) Maven主页:/ usr / local / apache-maven Java版本:1.8.0_131,供应商:Oracle Corporation Java home:/ usr / lib / jvm / java-8-openjdk-amd64 / jre 默认语言环境:en_US,平台编码:UTF-8 操作系统名称:&#34; linux&#34;,版本:&#34; 4.4.0-64-generic&#34;,arch:&#34; amd64&#34;,family:&#34; unix&#34;
maven-deploy-plugin的版本是2.8.2
我做错了什么?我怎样才能解决这个问题? 谢谢!
答案 0 :(得分:4)
这是Maven 3.5.0中的一个错误,并且只要3.5.1发布就会解决。
最初的错误报告标记了deploy-plugin(https://issues.apache.org/jira/browse/MDEPLOY-221),但这是maven core的一个问题:https://issues.apache.org/jira/browse/MNG-6240。
我们在工作中遇到了同样的问题,在对mavens问题跟踪器进行一些挖掘和搜索之后,我找到了上述链接。我建议在等待3.5.1退出时降级。