Maven忽略了本地存储库

时间:2014-04-08 15:59:47

标签: java eclipse maven

我试图在杰森项目中使用杰克逊。并且Maven忽略了我的本地存储库(我已经在之前的项目中设置了库)并从codehaus repo下载。

问题是,我的工作场所已阻止访问外部存储库,因此我必须使用本地存储库。如何强制Maven首先在本地查看并在那里使用库?

提前致谢

2 个答案:

答案 0 :(得分:2)

请在eclipse中设置映射到本地repo路径的Local Repository Path ..

转到Windows->Preferences->Maven->User Settings并更改settings.xml和本地存储库路径..

如果两者都正确定位,那么它应首先检查本地仓库

答案 1 :(得分:1)

为了响应COVID-19,不得不将开发环境移到异地,但由于我们正在将这些存储库镜像到办公室中的服务器,因此尚未建立我的环境以直接连接到各种公共存储库。但是,我的Maven仍在联系公共存储库以获取我们的内部发行版。这很奇怪,因为我已经在本地存储库中发布了内部发行版本。

解决方案是在我的settings.xml中更新Maven配置。定义配置文件,办公室的配置文件和异地的配置文件。在非现场配置文件中,除了我们已经在办公室镜像的公共存储库之外,我还定义了一个与我们服务器的名称匹配的存储库,用于存储我们内部发布的办公室-完全相同。这使Maven可以看到它正在寻找的库实际上是来自该存储库的,并且不需要去寻找它,因为它已经在本地仓库中了。 Maven不会能够连接到办公服务器也没关系,只需要定义它即可。

之前:

Downloading from central: https://repo.maven.apache.org/maven2/com/mycompany/test-core/1.1.0/test-core-1.1.0.pom
Downloading from jboss-releases: https://repository.jboss.org/nexus/content/repositories/releases/com/mycompany/test-core/1.1.0/test-core-1.1.0.jar
Downloading from repository-apache-org: https://repository.apache.org/content/groups/public/com/mycompany/test-core/1.1.0/test-core-1.1.0.pom
[WARNING] The POM for com.mycompany:test-core:jar:1.1.0 is missing, no dependency information available

这是我们生产和发布的图书馆,绝对不是在Maven Central。 Maven只是在寻找它-迷失方向。

我在异地配置文件中定义了一个新的存储库,由于现有的公司防火墙规则,我的环境肯定无法连接到该存储库:

    <repository>
      <id>leroy-releases</id>
      <name>Development Release Repository</name>
      <url>http://leroyhost:8080/repository/maven-releases/</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>interval:15</updatePolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>

请注意,profile部分包括自己的repositories部分,必须在其中定义repository部分。您还需要激活offsite配置文件:< / p>

<activeProfiles>
  <!--activeProfile>main-developer-profile</activeProfile-->
  <activeProfile>offsite-snapshots</activeProfile>
</activeProfiles>

我将其命名为快照是因为没有访问我们的Office存储库的权限,没有人在“现场”进行任何发布。

之后:

Maven不再在公共仓库中搜索我们的内部发布工件。它查阅了我的本地存储库,并在那里找到了我们所有的发行版。