1

我有一个项目 POM,它指定了一个指向沙箱位置的存储库标签。

<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 元素中没有任何意义,因为我使用存储库来解决依赖关系而不是部署。

4

2 回答 2

7

该错误表示您没有distributionManagement元素或元素不正确。

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

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

于 2012-11-09T14:15:45.463 回答
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>
于 2012-11-09T14:19:15.847 回答