Maven:从本地文件夹手动安装Jar,然后上线并获取并安装其所有依赖项



在我的项目的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)
  1. 你知道为什么我只在我的一些电脑上出现这个错误吗(我可以说所有的电脑都在使用同一个网络)?

  2. 为什么我会出现这个错误?据我所见,maven中央存储库中的jarIS

  3. 尽管maven无法在某些计算机上定位/下载jar,但我可以通过这些计算机上的浏览器手动下载。怎么可能呢?

  4. 好吧,我已经通过一台有问题的电脑上的浏览器手动下载了这个罐子。我想手动将其安装到此计算机上的本地存储库中。所以从命令行我做:

mvn install:install-file -DgroupId=javax.enterprise -DartifactId=cdi-api -Dversion=1.0-SP4 -Dpackaging=jar -Dfile=path/to/file

但是它的依赖项也没有被下载。是否有一些maven插件将文件安装到本地存储库AND下载&是否将其所有依赖项安装到本地存储库?如果是,请告诉我如何使用它。

  1. 如果.m2文件夹中的settings.xml文件具有所需jar的url,请检查未下载jar的计算机。如果不添加它们。

  2. 您无法下载,因为maven仅在settings.xml文件中定义的URL中进行搜索。因此,如果url不在那里,即使jar在中央存储库中,它也不会被下载。

  3. 在浏览器中,您可以导航到该链接并下载。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文件,并将所有提到的依赖项下载到你的本地存储库中。我建议您查看本地存储库,看看它是如何创建目录结构的。

最新更新