java 如何为 Maven 依赖项设置 URL

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/28562684/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-02 13:50:17  来源:igfitidea点击:

How to set URL for Maven dependency

javamavenvagrantmaven-3

提问by Pablo D

I have the following error after launch mvn clean install vagrant:up:

启动后出现以下错误mvn clean install vagrant:up

Downloading: https://oss.sonatype.org/content/repositories/snapshots/org/apache/avalon/framework/avalon-framework-api/4.2.0/avalon-framework-api-4.2.0.pom
[INFO] Unable to find resource 'org.apache.avalon.framework:avalon-framework-api:pom:4.2.0' in repository snapshot-repository (https://oss.sonatype.org/content/repositories/snapshots)
Downloading: http://central.maven.org/maven2/org/apache/avalon/framework/avalon-framework-api/4.2.0/avalon-framework-api-4.2.0.pom
[INFO] Unable to find resource 'org.apache.avalon.framework:avalon-framework-api:pom:4.2.0' in repository Avalon-repo (http://central.maven.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/avalon/framework/avalon-framework-api/4.2.0/avalon-framework-api-4.2.0.pom
[INFO] Unable to find resource 'org.apache.avalon.framework:avalon-framework-api:pom:4.2.0' in repository central (http://repo1.maven.org/maven2)
Downloading: https://oss.sonatype.org/content/repositories/snapshots/org/apache/avalon/framework/avalon-framework-impl/4.2.0/avalon-framework-impl-4.2.0.pom
[INFO] Unable to find resource 'org.apache.avalon.framework:avalon-framework-impl:pom:4.2.0' in repository snapshot-repository (https://oss.sonatype.org/content/repositories/snapshots)
Downloading: http://central.maven.org/maven2/org/apache/avalon/framework/avalon-framework-impl/4.2.0/avalon-framework-impl-4.2.0.pom
[INFO] Unable to find resource 'org.apache.avalon.framework:avalon-framework-impl:pom:4.2.0' in repository Avalon-repo (http://central.maven.org/maven2)
Downloading: http://repo1.maven.org/maven2/org/apache/avalon/framework/avalon-framework-impl/4.2.0/avalon-framework-impl-4.2.0.pom
[INFO] Unable to find resource 'org.apache.avalon.framework:avalon-framework-impl:pom:4.2.0' in repository central (http://repo1.maven.org/maven2)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Failed to resolve artifact.

Unable to get dependency information: Error in metadata for artifact 'rubygems:vagrant:gem': Unable to parse version '[0.5.2,0.5.2.0.0.0.0.1)' for dependency 'rubygems:archive-tar-minitar:gem': Range defies version ordering: [0.5.2,0.5.2.0.0.0.0.1)
  rubygems:vagrant:gem:1.0.7

from the specified remote repositories:
  central (http://repo1.maven.org/maven2),
  rubygems (http://rubygems-proxy.torquebox.org/releases),
  snapshot-repository (https://oss.sonatype.org/content/repositories/snapshots),
  Avalon-repo (http://central.maven.org/maven2)

Path to dependency: 
    1) downloader:downloader:jar:0.0.1-SNAPSHOT
    2) net.ju-n.maven.plugins:vagrant-maven-plugin:maven-plugin:1.0.1

I have searched this dependency and I found it in another URL, but I don't know how to set it. I don't want to download the jar manually, because we are using Jenkins and I don't have access to that repository.

我已经搜索了这个依赖项,我在另一个 URL 中找到了它,但我不知道如何设置它。我不想手动下载 jar,因为我们正在使用 Jenkins 而我无权访问该存储库。

Anyone knows how to solve it?

有谁知道如何解决它?

Thanks!!

谢谢!!

P.S. My pom.xmlis (partial):

PS我pom.xml是(部分):

<dependency>
  <groupId>net.ju-n.maven.plugins</groupId>
  <artifactId>vagrant-maven-plugin</artifactId>
  <version>1.0.1</version>
  <type>maven-plugin</type>
</dependency>
<dependency>
  <groupId>de.saumya.mojo</groupId>
  <artifactId>gem-maven-plugin</artifactId>
  <version>1.0.7</version>
</dependency>   
<dependency>
  <groupId>avalon-framework</groupId>
  <artifactId>avalon-framework-impl</artifactId>
  <version>4.2.0</version>
  <optional>true</optional>
</dependency>

Update1:I have the following repositories in my pom.xml:

更新 1:我的 pom.xml 中有以下存储库:

<repositories>      
    <repository>
        <id>snapshot-repository</id>
        <name>Maven2 Snapshot Repository</name>
        <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>daily</updatePolicy>
        </snapshots>
    </repository>

    <repository>
      <id>Avalon-repo</id>
      <url>http://central.maven.org/maven2</url>
    </repository>
  </repositories>

Update2:The problem that Maven is looking for the dependency in http://repo1.maven.org/maven2/org/apache/avalon/framework/avalon-framework-impl/4.2.0/avalon-framework-impl-4.2.0.pom, but the correct URL is: https://repo1.maven.org/maven2/avalon-framework/avalon-framework-api/4.2.0/avalon-framework-api-4.2.0.pom

Update2:Maven 在http://repo1.maven.org/maven2/org/apache/avalon/framework/avalon-framework-impl/4.2.0/avalon-framework-impl-4.2 中寻找依赖的问题。 0.pom,但正确的 URL 是:https://repo1.maven.org/maven2/avalon-framework/avalon-framework-api/4.2.0/avalon-framework-api-4.2.0.pom

回答by Sezin Karli

You have a settings.xml under your .m2folder. You must add a repository here like below:

settings.xm.m2文件夹下有一个l 。您必须在此处添加一个存储库,如下所示:

</repository>
                  <repository>
                      <id>central</id>
                      <name>Maven Repository Switchboard</name>
                      <url>http://repo1.maven.org/maven2</url>
                      <snapshots>
                        <enabled>false</enabled>
                      </snapshots>
                    </repository>

回答by The Coder

You need to add this code in pom.xml

您需要在 pom.xml 中添加此代码

<repositories>
    <repository>
        <id>appfuse-snapshots</id>
        <url>http://oss.sonatype.org/content/repositories/appfuse-snapshots</url>    // Replace it with your respective repository
        <releases>
            <enabled>false</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

回答by user1769790

I had this problem where my lookup for dependencies were failing. As it was kind of replacing org.xxx as org/xxx and none of the dependencies were pulled.

我在查找依赖项失败时遇到了这个问题。因为它有点像将 org.xxx 替换为 org/xxx 并且没有任何依赖项被拉出。

The url for default Central Maven repository is http://repo.maven.apache.org/maven2/. Unless you want to fetch artifacts from different location (like local artifactory etc.,) Remove section or you can still have

默认中央 Maven 存储库的 url 是http://repo.maven.apache.org/maven2/。除非您想从不同位置获取工件(如本地工件等),否则请删除部分,否则您仍然可以拥有

       <repository> 
           <id>central</id>
           <url>http://repo.maven.apache.org/maven2/</url>
       </repository>

mvn clean install it should download all repositories that you are looking for.

mvn clean install 它应该下载您正在寻找的所有存储库。