Maven:添加镜像中不存在的依赖项

时间:2012-12-14 03:27:08

标签: maven

我们正在为所有依赖项使用本地nexus镜像 我需要在其中一个项目中使用以下依赖项:

<depedency>
    <groupId>com.smartgwt</groupId>
    <artifactId>smartgwt</artifactId>
    <version>3.0</version>
</depedency>
来自存储库的

http://www.smartclient.com/maven2

但maven给我的错误说“找不到com.smartgwt:smartgwt:jar:3.0”。
可能是什么问题,我该如何解决?

(也许这是一个非常微不足道的问题,但我对Maven来说相当新鲜)

1 个答案:

答案 0 :(得分:1)

我假设Nexus正在为Maven Central上托管的所有标准依赖项工作。

在进行构建时,您可以通过使用-X参数打开调试来解决Maven下载的问题。会有很多噪音,但是如果你因为找不到依赖关系而在你的构建失败的地方看了几行,它就会告诉你:

  • 尝试下载依赖项
  • 是否使用镜子
  • 如果下载
  • 时有任何HTTP错误代码

如何在Nexus代理中设置http://www.smartclient.com/maven2?作为单独的代理存储库? Nexus可以访问此回购(它是“在服务中”还是未阻止?)


Nexus中的此存储库是否已添加到“公共”组?如果你不想要这个:

您必须在您的settings.xml中为此存储库配置一个单独的镜像,该镜像指向Nexus中的URL。

同时检查您是否在POM中添加了存储库,例如

<project>
...
    <repositories>
        <repository>
            <id>smartclient</id>
            <name>SmartClient Maven Repository</name>
            <url>http://www.smartclient.com/maven2/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
...
</project>

然后在您的settings.xml中为此存储库配置代理条目:

<settings>
...
    <mirrors>
        <mirror>
            <id>smartclient-nexus-proxy</id>
            <mirrorOf>smartclient</mirrorOf>
            <url><url of your smartclient proxy repository in Nexus></url>
        </mirror>
    ...