使用maven,我偶尔会遇到来自第三方回购的工件,这些工件我还没有构建或包含在我的存储库中。

我将从maven客户端得到一个错误消息,说无法找到工件:

无法找到org.jfrog.maven.annomojo:maven-plugin-anno:jar:1.4.0 在http://myrepo:80/artifactory/repo中缓存在本地 存储库,解析将不会重新尝试,直到更新 MyRepo的时间间隔已过或更新被强制->[帮助1]

现在,我明白了这意味着什么,并且可以简单地用-U重新运行我的命令,从那时起,事情通常都能正常工作。

然而,我发现这个错误消息非常不直观,我试图让我的同事们不那么头疼。

我试图弄清楚是否有一些地方,我可以修改这个更新间隔设置。

此错误消息中提到的更新间隔是客户端设置还是服务器端设置? 如果是客户端,如何配置? 如果是服务器端,有人知道Nexus/Artifactory如何公开这些设置吗?


当前回答

我遇到了这个问题,文中提出的全面描述帮助我解决了它。

第二个问题是我的问题。我使用了我刚刚添加的第三方存储库,它在我的项目中做pom文件的存储库部分。我在pluginrepository中添加了相同的存储库信息来解决这个问题。

其他回答

基本上发生的情况是,根据maven的默认updatePolicy, maven将每天从repo中获取jar。因此,如果在第一次尝试期间,您的互联网不工作,那么它将不会尝试再次获取这个罐子,直到24小时过去。

解决方法:

要么使用

mvn -U clean install

(此处-U将强制更新repo)

或使用

<profiles>
    <profile>
      ...
      <repositories>
        <repository>
          <id>myRepo</id>
          <name>My Repository</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
         </repository>
      </repositories>
      ...
    </profile>
  </profiles>

在你的settings.xml中

确保您正在寻找的工件是存在的,如果它在您的本地项目运行: cd . . CD项目名称 MVN清洁安装

然后你就可以在当地吃了。

为了更好的练习,请: MVN清洁部署,因此您可以再次使用它而不会出现此问题

我已经解决了!

我早些时候遇到过这个问题,在审查了一些评论后,它起作用了。 我们只需要修改{m2_home}/.m2下的settings.xml文件

**<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>.m2/repository</localRepository>
<profiles>
    <profile>
      <repositories>
        <repository>
          <id>projectid</id>
          <url>http://localhost</url>
          <name>Project name</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
         </repository>
      </repositories>
    </profile>
  </profiles>
</settings>**

并执行maven clean install命令。

**/maven_home/mvn -f project_directory/pom.xml -DskipTests clean install**

我是怎么得到这个问题的,

当我从Eclipse Juno更改到Luna,并从SVN repo签出我的maven项目时,我在构建应用程序时遇到了同样的问题。

我试过什么? 我尝试清理本地存储库,然后再次使用-U选项更新所有版本。但我的问题还在继续。

然后我去了窗口—>首选项—> Maven—>用户设置—>,点击本地存储库下的重新索引按钮,等待重新索引发生。

就这样,问题解决了。

对我来说,解决方案很愚蠢:我只是使用了不正确的依赖版本。