我试图在杰森项目中使用杰克逊。并且Maven忽略了我的本地存储库(我已经在之前的项目中设置了库)并从codehaus repo下载。
问题是,我的工作场所已阻止访问外部存储库,因此我必须使用本地存储库。如何强制Maven首先在本地查看并在那里使用库?
提前致谢
答案 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不再在公共仓库中搜索我们的内部发布工件。它查阅了我的本地存储库,并在那里找到了我们所有的发行版。