Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
链接Maven存储库以在远程服务器之前选择本地文件系统_Maven - Fatal编程技术网

链接Maven存储库以在远程服务器之前选择本地文件系统

链接Maven存储库以在远程服务器之前选择本地文件系统,maven,Maven,我试图在maven在远程服务器中查找依赖项之前,将其链接到本地文件系统中获取依赖项 settings.xml <repository> <snapshots> <enabled>true</enabled> </snapshots> <releases> <enabled>true</enabled> </releases> <id>loca

我试图在maven在远程服务器中查找依赖项之前,将其链接到本地文件系统中获取依赖项

settings.xml

<repository>
  <snapshots>
    <enabled>true</enabled>
  </snapshots>
  <releases>
    <enabled>true</enabled>
  </releases>
  <id>local</id>
  <name>libs-local-release</name>
  <url>file:///E:/project-folder/jars</url>
</repository>
<repository>
  <snapshots>
    <enabled>false</enabled>
  </snapshots>
  <id>central</id>
  <name>libs-release</name>
  <url>https://www.repositoryURL.com/libs-release</url>
</repository>
正如您所看到的,Maven从我的文件系统和服务器下载依赖项,但是localRepository
(%USERPROFILE%\.m2\repository)
似乎是用服务器中的依赖项而不是我的文件系统更新的


如何配置它,使本地jar文件(来自文件系统repo)优于远程jar文件?

我不完全确定您想要实现什么,但我尽了最大努力:

Maven有一个专用的本地存储库(您提到的,
C:\%USERPROFILE%\.m2\repository
)。它总是先看那里。不需要为此配置任何东西

快照依赖关系是一个例外,因为它们可以更改,所以Maven也可以(定期)在远程存储库中查找它们

从远程存储库下载的所有内容都存储在本地存储库中,因此在下次尝试时,Maven无需再次下载


如果您有需要的JAR,但它们不在Maven存储库中,那么您有几种处理这种情况的方法,具体取决于JAR的数量、用户的数量等。

很抱歉,我对问题进行了修改,以便更好地解释我的情况。我在寻找你描述的最后一个场景。我正在寻找一种从本地文件系统而不是远程repo获取jar文件的方法。然而,对于本地FS中没有的其他依赖项,使用远程repo。从参考帖子中,即使在pom.xml中设置了
本地maven repo
,我是否也必须执行
-DlocalRepositoryPath
?此外,所描述的情况看起来更像是文件在本地repo中可用,但在远程repo中不可用。如果我在两个repo中都有该文件呢?最好在您的settings.xml中配置所有这些。如果该文件同时存在于两个回购协议中,那么从何处下载该文件并不重要?在第一次下载之后,它可以在您的标准本地存储库中使用。我在本地编辑一个包,然后再将其发布到工件。我希望用另一个依赖于第一个包的项目来测试它。我希望将第一个包的构建目录设置为项目的依赖项。在不更改版本的情况下,永远不要更改现有的jar。如果使用1.0-fixed而不是1.0,你很好,对存储库的顺序没有问题。所以你想要一些Maven工件的文件系统缓存?这是默认情况下使用本地缓存
$HOME/.m2/repository
完成的。我不明白你想实现什么,或者你想解决什么样的问题…@Thorbjørnravandersen,是的;本地文件系统缓存听起来不错,但是本地存储库顶部的缓存位于
$HOME/.m2/repository
。这很简单,只需添加一个
file:///....
远程存储库。不过,您需要自己从另一个本地存储库填充它。如果你描述了你实际上试图解决的问题(在问题中),你可能会得到一个更好的解决方案。
Downloading from local: file:///E:/project-folder/jars/package/dependency/maven-metadata.xml
Downloading from central: https://www.repositoryURL.com/libs-release/package/dependency/maven-metadata.xml
Downloaded from central: https://www.repositoryURL.com/libs-release/package/dependency/maven-metadata.xml (2.1 kB at 45 kB/s)
Downloading from local: file:///E:/project-folder/jars/package/dependency/1.0.0.007/dependency-1.0.0.007.pom
Downloaded from local: file:///E:/project-folder/jars/package/dependency/1.0.0.007/dependency-1.0.0.007.pom (4.3 kB at 287 kB/s)
Downloading from local: file:///E:/project-folder/jars/package/dependency/1.0.0.172/dependency-1.0.0.172.pom
Downloaded from local: file:///E:/project-folder/jars/package/dependency/1.0.0.172/dependency-1.0.0.172.pom (4.3 kB)
Downloading from local: file:///E:/project-folder/jars/package/dependency/1.0.0.173/dependency-1.0.0.173.pom
Downloaded from local: file:///E:/project-folder/jars/package/dependency/1.0.0.173/dependency-1.0.0.173.pom (4.3 kB)
Downloading from local: file:///E:/project-folder/jars/package/dependency/1.0.0.174/dependency-1.0.0.174.pom
Downloaded from local: file:///E:/project-folder/jars/package/dependency/1.0.0.174/dependency-1.0.0.174.pom (4.3 kB at 269 kB/s)
Downloading from local: file:///E:/project-folder/jars/package/dependency/1.0.0.175/dependency-1.0.0.175.pom
Downloaded from local: file:///E:/project-folder/jars/package/dependency/1.0.0.175/dependency-1.0.0.175.pom (4.3 kB)
Downloading from local: file:///E:/project-folder/jars/package/dependency/1.0.0.176/dependency-1.0.0.176.pom
Downloaded from local: file:///E:/project-folder/jars/package/dependency/1.0.0.176/dependency-1.0.0.176.pom (4.3 kB at 287 kB/s)