2013-12-19 52 views
1

我使用maven将工件部署到sonatype nexus,我可以正常执行发布操作,但是部署快照失败。mvn将快照部署到nexus oss失败,返回代码500内部错误

  • Sonatype的关系2.7.0.5
  • 爪哇1.7
  • 行家3.0.5

    1. MVN释放:准备; MVN释放:执行;成功没有任何错误
    2. MVN部署失败,返回码500
[INFO] maven-jar-plugin:2.4:jar (default-jar) @ licm 
[INFO] Building jar: /foo/licm/trunk/target/licm-0.2.9-SNAPSHOT.jar 
[INFO] 
[INFO] maven-install-plugin:2.3.1:install (default-install) @ licm 
[INFO] Installing /foo/licm/trunk/target/licm-0.2.9-SNAPSHOT.jar to /foo/.m2/repository/com/xxx/utils/licm/0.2.9-SNAPSHOT/licm-0.2.9-SNAPSHOT.jar 
[INFO] Installing /foo/licm/trunk/pom.xml to /foo/.m2/repository/com/xxx/utils/licm/0.2.9-SNAPSHOT/licm-0.2.9-SNAPSHOT.pom 
[INFO] 
[INFO] --- maven-deploy-plugin:2.8.1:deploy (default-deploy) @ licm --- 
Downloading: http://xxx.xxx.com:8080/nexus/content/repositories/snapshots/com/xxx/utils/licm/0.2.9-SNAPSHOT/maven-metadata.xml 
    [WARNING] Could not transfer metadata com.xxx.utils:licm:0.2.9-SNAPSHOT/maven-metadata.xml 
from/to Snapshots (http://xxx.xxx.com:8080/nexus/content/repositories/snapshots): Failed to transfer file: 
http://xxx.xxx.com:8080/nexus/content/repositories/snapshots/com/xxx/utils/licm/0.2.9-SNAPSHOT/ 
maven-metadata.xml. Return code is: 500 , ReasonPhrase:Internal Server Error. 

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.824s 
[INFO] Finished at: Fri Dec 20 01:20:33 CST 2013 
[INFO] Final Memory: 8M/20M 
[INFO] ------------------------------------------------------------------------ 
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.8.1:deploy (default-deploy) on project licm: Failed to retrieve remote metadata com.xxx.utils:licm:0.2.9-SNAPSHOT/maven-metadata.xml: Could not transfer metadata com.xxx.utils:licm:0.2.9-SNAPSHOT/maven-metadata.xml from/to Snapshots (http://xxx.xxx.com:8080/nexus/content/repositories/snapshots): Failed to transfer file: http://xxx.xxx.com:8080/nexus/content/repositories/snapshots/com/xxx/utils/licm/0.2.9-SNAPSHOT/maven-metadata.xml. Return code is: 500 , ReasonPhrase:Internal Server Error. -> [Help 1]" 

这是我第一次部署快照到远程仓库,所以也没什么快照库关系服务器上

  • 的settings.xml
<?xml version="1.0"?> 
<settings> 
<servers> 
<server> 
     <id>Releases</id> 
     <username>admin</username> 
     <password>admin123</password> 

</server> 
<server> 
     <id>Snapshots</id> 
     <username>admin</username> 
     <password>admin123</password> 
</server> 
</servers> 
<mirrors> 
<mirror> 
     <id>Nexus</id> 
     <name>Nexus Public Mirror</name> 
     <url>http://xxx.xxx.com:8080/nexus/content/groups/public</url> 
     <mirrorOf>*</mirrorOf> 
</mirror> 

</mirrors> 
</settings> 
  • 的pom.xml
<distributionManagement> 
    <repository> 
     <id>Releases</id> 
     <name>xxx Releases Repositories</name> 
     <url>http://xxx.xxx.com:8080/nexus/content/repositories/releases</url> 
    </repository> 
    <snapshotRepository> 
     <id>Snapshots</id> 
     <name>xxx Snapshots Repositories</name> 
     <url>http://xxx.xxx.com:8080/nexus/content/repositories/snapshots</url> 
    </snapshotRepository> 
    </distributionManagement> 

回答

1

Nexus需要符合Servlet 3.0的容器。它捆绑了一个符合Servlet 3.0的Jetty 8.如果你将它部署在另一个容器上,你必须确保它是兼容的。在文档中找不到这一点,但从自己的经验看,似乎是这样。

当你

HTTP GET http://xxx.xxx.com:8080/nexus/content/repositories/snapshots/com/xxx/utils/licm/0.2.9-SNAPSHOT/maven-metadata.xml

在浏览器中,你应该能够看到堆栈跟踪,其中包含

java.lang.NoSuchMethodError: javax.servlet.http.HttpServletResponse.getStatus()

这仅仅是3.0的Servlet容器可用。

3

回答自己。

当关系服务器无法找到Maven的metadata.xml中,它会导致tomcat的抛出一个异常,这就是问题所在

我更改Tomcat版本从6.x到的7.0.x,一切是好的

0

我遇到了相同的返回码(500)和原因(内部服务器错误),finnaly发现nexus服务器磁盘空间已满。 :)检查服务器中的nexus日志可以找到这个线索。

相关问题