在我的项目的pom文件中,我可以在Maven中央存储库中看到一个依赖项,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)
你知道为什么我只在我的一些电脑上出现这个错误吗(我可以说所有的电脑都在使用同一个网络)?
为什么我会出现这个错误?据我所见,maven中央存储库中的jarIS。
尽管maven无法在某些计算机上定位/下载jar,但我可以通过这些计算机上的浏览器手动下载。怎么可能呢?
好吧,我已经通过一台有问题的电脑上的浏览器手动下载了这个罐子。我想手动将其安装到此计算机上的本地存储库中。所以从命令行我做:
mvn install:install-file -DgroupId=javax.enterprise -DartifactId=cdi-api -Dversion=1.0-SP4 -Dpackaging=jar -Dfile=path/to/file
但是它的依赖项也没有被下载。是否有一些maven插件将文件安装到本地存储库AND下载&是否将其所有依赖项安装到本地存储库?如果是,请告诉我如何使用它。
-
如果.m2文件夹中的settings.xml文件具有所需jar的url,请检查未下载jar的计算机。如果不添加它们。
-
您无法下载,因为maven仅在settings.xml文件中定义的URL中进行搜索。因此,如果url不在那里,即使jar在中央存储库中,它也不会被下载。
-
在浏览器中,您可以导航到该链接并下载。Maven无法做到这一点,原因在第二点中给出
好的,看起来你需要在pom文件中提到你的存储库路径,存储库的url是什么?它是你的网络本地的还是一些开放的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文件,它会更容易帮助你。
要回答您的3点:请检查.m2\settings.xml中的settings.xml文件,确保存在相同的内容。有时settings.xml直接在maven安装目录中进行修改。所以你最好也去那个地方登记。
回答你的第四点:mvn-install:install将一个工件(jar/ear/zip/任何用于分发的工件)安装到maven本地存储库或远程存储库中(简单地说是副本)。因此,在您的命令中,您只是尝试只安装cdiapi-jar。
每当你运行mvn-compile、mvn-package、mvn-install时,maven都会扫描你的pom文件,并将所有提到的依赖项下载到你的本地存储库中。我建议您查看本地存储库,看看它是如何创建目录结构的。