在我的项目的pom文件中,我有一个依赖项,我可以在Maven central repository, javax.enterprise:cdi-api:jar:1.0-SP4
中看到,但由于某种原因,我在某些计算机上获得 构建项目时出现以下错误(因此构建失败):
[INFO] Unable to find resource 'javax.enterprise:cdi-api:jar:1.0-SP4' in repository central (http://repo1.maven.org/maven2)
我知道为什么我只在某些计算机上出现此错误(我可以说所有计算机都在使用同一个网络)?
为什么我会收到此错误? As far as I can see maven中央存储库中的jar IS 。
即使maven无法在某些计算机上找到/下载jar,我也可以在这些计算机上手动下载through the browser。怎么会这样?
好的,所以我已经通过浏览器在其中一台有问题的计算机上手动下载了jar。我想手动将其安装到此计算机上的本地存储库中。所以从命令行我做:
mvn install:install-file -DgroupId=javax.enterprise -DartifactId=cdi-api -Dversion=1.0-SP4 -Dpackaging=jar -Dfile=path/to/file
...但是也没有下载任何依赖项。是否有一些maven插件可以将文件安装到本地存储库 AND download&将其所有依赖项安装到本地存储库? 如果是这样,请告诉我如何使用它。
答案 0 :(得分:0)
如果.m2文件夹中的settings.xml文件包含所需jar的url,请检查未下载jar的计算机。如果没有添加它们。
您无法下载,因为maven仅在settings.xml文件中定义的网址中搜索。因此,如果网址不存在,即使jar位于中央存储库中,也不会下载。
在浏览器中,您可以导航到该链接并下载。由于第二点中给出的原因,Maven无法做到这一点
答案 1 :(得分:-1)
好的,看起来你需要在你的pom文件中提到你的存储库路径,存储库的url是什么?它是您的网络本地或一些开放网址?例如:http://repo2.mvn.org/ ???
示例示例如下::
<repositories>
<repository>
<id>codehausSnapshots</id>
<name>Codehaus Snapshots</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>warn</checksumPolicy>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
<url>http://snapshots.maven.codehaus.org/maven2</url>
<layout>default</layout>
</repository>
</repositories>
如果你可以粘贴pom文件,那么帮助你会更容易。
回答你的观点:检查.m2 \ settings.xml中的settings.xml文件,确保存在相同的内容。有时,settings.xml会直接在maven安装目录中修改。所以你最好也检查那个位置。
回答第4点:mvn install:安装安装(简单来说,复制)一个工件(jar / ear / zip /任何用于分发的工件)到maven本地存储库或远程存储库。所以在你的命令中,你只是尝试安装cdi-api jar。
每当你运行mvn compile,mvn package,mvn install,maven都会扫描你的pom文件,并将所有提到的依赖项下载到你的本地存储库中。我建议你查看本地存储库,看看它是如何创建目录结构的。