2012-11-09 92 views
1

我有一个项目POM,它指定了一个指向沙箱位置的存储库标记。Maven - 存储库标记防止部署

<repositories> 
    <repository> 
     <id>mysandbox</id> 
     <name>Sandbox</name> 
     <url>http://myTestingSite.com/repositories/sandbox/</url> 
    </repository> 
</repositories> 

这在Eclipse中正常工作,并解决所有依赖关系,但是当我尝试部署时,我得到以下异常。

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.5:deploy (default-depl 
    oy) on project myweb-web: Deployment failed: repository element was not specified in the POM insid 
    e distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 
    1] 
    org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plug 
    ins:maven-deploy-plugin:2.5:deploy (default-deploy) on project myweb-web: Deployment failed: repos 
    itory element was not specified in the POM inside distributionManagement element or in -DaltDeployme 
    ntRepository=id::layout::url parameter 

在Distributionmanagement元素结束语这样做没有任何意义,因为我使用的存储库依赖解析,而不是部署。

回答

7

错误提示您要么没有distributionManagement元素,要么元素不正确。

所以这与<repositories>的内容无关。只需创建一个正确的distributionManagement元素,它就可以工作。

请注意,破损的元素可能位于父POM中。在Maven看到它时运行mvn help:effective-pom以查看完整的POM。

6

您最初定义的存储库仅考虑下载依赖关系,而不是上载它们(如您所述)。

您需要添加什么是分销管理

<distributionManagement> 
    <repository> 
     <id>id</id> 
     <name>name</name> 
     <url>nexus_url</url> 
    </repository> 
</distributionManagement> 

内的存储库,如果你的关系被固定,你还需要定义密码的服务器部分。

<servers> 
    <server> 
     <id>id</id> 
     <username>username</username> 
     <password>password</password> 
    </server> 
</servers> 
相关问题