2012-06-12 90 views
0

我正在使用Maven将我们的项目与其他人整合,可能以不受欢迎的方式遇到问题。maven部署文件失败,503:找不到maven-metadata.xml

我们有一个用Ant编译的项目。 Ant脚本非常棒,所以当我们使用Maven进行集成时,决定继续使用Ant进行编译。

现在让我们来说说Ant编译输出是res-1.0-SNAPSHOT.tar.gz。 (任何文件名都是可能的,但它是tar.gz)我将文件部署到nexus托管的快照库(称为“快照”)。

我试图用这个命令部署:

mvn deploy:deploy-file \ 
    -DgroupId="com.my-company" \ 
    -DartifactId="res" \ 
    -Dversion="1.0-SNAPSHOT" \ 
    -Dpackaging="tar.gz" \ 
    -Dfile="res-1.0-SNAPSHOT.tar.gz" \ 
    -Durl="http://our-nexus-ip/nexus/content/repositories/snapshots" \ 
    -DrepositoryId="snapshots" 

我在〜/ .m2目录下一个简单的settings.xml与代理和服务器设置。然而,服务器设置尚未在当前的进度中使用,错误的密码不会收到错误。

输出是这样的:

[[[email protected] maven]# ./run.sh 
+ mvn deploy:deploy-file -DgroupId=com.my-company -DartifactId=res -Dversion=1.0-SNAPSHOT -Dpackaging=tar.gz -Dfile=res-1.0-SNAPSHOT.tar.gz -Durl=http://135.252.234.142:8081/nexus/content/repositories/snapshots -DrepositoryId=snapshots 
Warning: JAVA_HOME environment variable is not set. 
[INFO] Scanning for projects... 
[INFO] Searching repository for plugin with prefix: 'deploy'. 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Maven Default Project 
[INFO] task-segment: [deploy:deploy-file] (aggregator-style) 
[INFO] ------------------------------------------------------------------------ 
[INFO] [deploy:deploy-file] 
[INFO] Retrieving previous build number from snapshots 
[INFO] ------------------------------------------------------------------------ 
[ERROR] BUILD ERROR 
[INFO] ------------------------------------------------------------------------ 
[INFO] Error retrieving previous build number for artifact 'com.my-company:res:tar.gz': repository metadata for: 'snapshot com.my-company:res:1.0-SNAPSHOT' could not be retrieved from repository: snapshots due to an error: Error transferring file 

Server returned HTTP response code: 503 for URL: http://135.252.234.142:8081/nexus/content/repositories/snapshots/com/my-company/res/1.0-SNAPSHOT/maven-metadata.xml 
[INFO] ------------------------------------------------------------------------ 
[INFO] For more information, run Maven with the -e switch 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 51 seconds 
[INFO] Finished at: Tue Jun 12 08:44:13 CST 2012 
[INFO] Final Memory: 7M/209M 
[INFO] ------------------------------------------------------------------------ 

你看,它未能找到Maven的metadata.xml中。可以肯定的是,该文件及其文件夹“com/my-company”在存储库中完全不存在。

另外的Maven的任何滥用你会发现,我的问题是:

1)我在正确的方式使用Maven? (部署tar.gz,使用deploy:deploy-file ...)

2)有没有不正确的参数?

3)什么是maven-metadata.xml?它不在那里,但Maven坚持要找到它 - 我想它是生成的,我错过了一些步骤?

解决方案可能是愚蠢的,我真的不熟悉Maven。不幸的是它必须完成......请帮我解决这个问题。

Maven版本是2.0.11。让我知道你是否想知道更多。

回答

1

我有同样的问题,我们的联系有一个错误。

使用maven3(与相同的settings.xml的pom.xml.m2目录回购)解决了我们的问题,其比升级更简单关系。

您也可以检查this bug

0

如果您仍然坚持使用Ant,我会建议您至少考虑将Ivy添加到图片中,作为您的依赖管理器。如果我没有记错,它能够更新存储库中的maven-metadata.xml文件。

看看this的例子。