Maven 无法将中的外部JAR下载到Artifactory

Maven 无法将中的外部JAR下载到Artifactory,maven,maven-2,repository,artifactory,Maven,Maven 2,Repository,Artifactory,我正在使用Jfrog的Artifactory,我已经将repo1.maven.org/maven2作为远程存储库,但是当我从IDE请求特定的工件时,Artifactory不会从远程服务器将其下载到缓存中?你知道我在这里遗漏了什么吗 编辑: artifactory.log显示以下错误消息 2012-01-09 13:08:10,814 [pool-1-thread-15] [INFO ] (o.a.c.h.HttpMethodDirector:445) - Retrying request 20

我正在使用Jfrog的Artifactory,我已经将repo1.maven.org/maven2作为远程存储库,但是当我从IDE请求特定的工件时,Artifactory不会从远程服务器将其下载到缓存中?你知道我在这里遗漏了什么吗

编辑:

artifactory.log显示以下错误消息

2012-01-09 13:08:10,814 [pool-1-thread-15] [INFO ] (o.a.c.h.HttpMethodDirector:445) - Retrying request

2012-01-09 13:08:11,814 [pool-1-thread-15] [WARN ] (o.a.r.RemoteRepoBase:323) - jfrog-libs: Error in getting information for 'opensymphony/quartz/1.6.5/quartz-1.6.5.pom' (Failed retrieving resource from http://repo.jfrog.org/artifactory/libs-release-local/opensymphony/quartz/1.6.5/quartz-1.6.5.pom: Connection refused: connect).

2012-01-09 13:08:13,408 [pool-1-thread-16] [INFO ] (o.a.c.h.HttpMethodDirector:439) - I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
下面是项目pom.xml的一部分

<distributionManagement>
        <repository>
            <id>COMPANY_INTERNAL</id>
            <name>COMPANY internal repository</name>
            <url>http://artifactoryserver:18081/artifactory/company</url>
        </repository>
        <snapshotRepository>
            <id>COMPANY_INTERNAL_SNAPSHOTS</id>
            <name>companyinternal snapshot repository</name>
            <url>http://artifactoryserver:18081/artifactory/company</url>
        </snapshotRepository>
    </distributionManagement>

    <repositories>
        <repository>
            <id>COMPANY_PUBLIC</id>
            <name>COMPANY internal and external repository</name>
            <url>http://artifactoryserver:18081/artifactory/repo</url>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>always</updatePolicy>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>COMPANY_PLUGINS</id>
            <name>Maven Plugin Repository</name>
            <url>http://artifactoryserver:18081/artifactory/plugins-releases</url>
            <layout>default</layout>
        </pluginRepository>
    </pluginRepositories>

贵公司的网络是否要求您使用代理访问外部互联网?如果是这样,您需要在Artifactory的管理/配置/代理屏幕中设置该代理,然后对于每个外部repo Artifactory作为的代理,您需要在repo的高级设置选项卡上指定该代理。

您公司的网络是否要求您使用代理访问外部internet?如果是这样,您需要在Artifactory的Admin/Configuration/Proxies屏幕中设置该代理,然后对于每个外部repo,Artifactory将充当,您需要在repo的“高级设置”选项卡上指定此代理。

我在您附加的response.log中看到,Artifactory返回请求快照工件条目右侧第二列的响应状态

这意味着请求的工件已经存在于本地机器的缓存中,并且在Artifactory中找不到更新的版本


无论您使用什么工具,都会根据本地版本的上次修改时间请求此工件,并带有条件头,即;由于找不到更新的版本,重新下载相同的工件是毫无意义的,这就是为什么您在Artifactory的缓存repo中看不到它。

我在您附加的response.log中看到,Artifactory返回请求的快照工件条目右侧第二列的响应状态

这意味着请求的工件已经存在于本地机器的缓存中,并且在Artifactory中找不到更新的版本


无论您使用什么工具,都会根据本地版本的上次修改时间请求此工件,并带有条件头,即;由于找不到更新的版本,重新下载相同的工件是毫无意义的,这就是为什么在Artifactory的缓存repo中看不到它的原因。

我今天有一个有趣的经历,遇到了相同类型的错误,但它是在GET请求下进行的,只是没有像原始海报那样进行部署

在我的例子中,用户的~/.m2/settings.xml来自一个模板文件,该模板文件具有:

<server>
    <id>${server-id}</id>
    <username>a-valid-username</username>
    <password>valid-pass</password>
</server>
稍后,在settings.xml模板中,他们使用凭据复制和修改了存储库url

这导致他们可能会攻击服务器并发出请求,但它永远不会尝试进行身份验证

他们收到了“身份验证被拒绝”消息,一个未经身份验证的用户在request.log中发出GET请求


一旦我们用服务器的实际id替换了伪造/未定义的${server id},它就开始工作了

今天,我有一个有趣的经历,遇到了同样类型的错误,但它是在一个GET请求上发生的,只是没有像最初的海报那样部署

在我的例子中,用户的~/.m2/settings.xml来自一个模板文件,该模板文件具有:

<server>
    <id>${server-id}</id>
    <username>a-valid-username</username>
    <password>valid-pass</password>
</server>
稍后,在settings.xml模板中,他们使用凭据复制和修改了存储库url

这导致他们可能会攻击服务器并发出请求,但它永远不会尝试进行身份验证

他们收到了“身份验证被拒绝”消息,一个未经身份验证的用户在request.log中发出GET请求


一旦我们用服务器的实际id替换了伪造/未定义的${server id},它就开始工作了

您确定您的构建试图将您的Artifactory服务器用作repo,还是直接转到Central?您可以在settings.xml中使用mirrors来镜像中心,并强制您的构建转到Artifactory以获取所有工件。因此,基本上我有pom.xml,其中repositoy、pluginRepository都指向Artifactory服务器。你说的直接去中环是什么意思?这里可能有很多因素。你用的是什么IDE?您使用的依赖项管理集成是什么?您可以从查看Artifactory的请求日志开始,该日志可在$Artifactory\u HOME/logs/request.log中找到,以查看您的请求是否到达存储库。我不理解它为什么抛出连接拒绝错误,为什么不尝试连接到repo1.maven.org/maven2您将请求指向哪个Artifactory存储库在?您确定您的构建试图将您的Artifactory服务器用作repo还是直接转到Central?您可以在settings.xml中使用mirrors来镜像中心,并强制您的构建转到Artifactory以获取所有工件。因此,基本上我有pom.xml,其中repositoy、pluginRepository都指向Artifactory服务器。你说的是什么意思,还是说它要走了

换成中央银行?这里可能有很多因素在起作用。你用的是什么IDE?您使用的依赖项管理集成是什么?您可以从查看Artifactory的请求日志开始,该日志可在$Artifactory\u HOME/logs/request.log中找到,以查看您的请求是否到达存储库。我不理解它为什么抛出连接拒绝错误,为什么不尝试连接到repo1.maven.org/maven2您将请求指向哪个Artifactory存储库此外,您应该能够浏览到-但该目录不存在。如果您备份到just,您将看到没有opensymphony目录。你找错了那件艺术品的回购协议。如果你去搜索quartz,你会看到它在central,而不是jfrog的repo。网络中没有代理。另外,我在远程repos列表虚拟存储库中有repo1.maven.org/maven2。然后,您需要了解repo虚拟存储库是如何配置的——它由哪个远程/本地/虚拟repos组成,以及解决顺序。如果jfrog的repo在此列表中,请将其下移到central下方,查看它是否能成功解析quartz。repo是所有已配置存储库的全局聚合,这就是为什么我怀疑客户机以某种方式引用了错误的存储库,因此我请求了请求的内容。logI添加了Artifactory的屏幕截图。我看不到任何名为repo的全局存储库。我不确定这是任何系统的默认全局存储库还是用户创建的。此外,您应该能够浏览到-但该目录不存在。如果您备份到just,您将看到没有opensymphony目录。你找错了那件艺术品的回购协议。如果你去搜索quartz,你会看到它在central,而不是jfrog的repo。网络中没有代理。另外,我在远程repos列表虚拟存储库中有repo1.maven.org/maven2。然后,您需要了解repo虚拟存储库是如何配置的——它由哪个远程/本地/虚拟repos组成,以及解决顺序。如果jfrog的repo在此列表中,请将其下移到central下方,查看它是否能成功解析quartz。repo是所有已配置存储库的全局聚合,这就是为什么我怀疑客户机以某种方式引用了错误的存储库,因此我请求了请求的内容。logI添加了Artifactory的屏幕截图。我看不到任何名为repo的全局存储库,我不确定这是系统的默认全局存储库还是用户创建的。谢谢。我清除了本地的.m2文件夹,这次它再次下载了所有内容。谢谢。我清除了本地的.m2文件夹,这次它再次下载了所有内容。