【问题标题】:Spring boot starter parent 2.0.0 not found dependencySpring boot starter parent 2.0.0 未找到依赖项
【发布时间】:2018-01-10 20:05:08
【问题描述】:

我决定将我的 spring-boot-starter-parent 更新到 2.0.0.M1 版本,以便与 Spring Core 5.0.0.RC1 一起使用。

但是,我在从 Spring 里程碑存储库下载依赖项时遇到问题。

我的 pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.test.testapplication</groupId>
<artifactId>application</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.M1</version>
</parent>

<repositories>
    <repository>
        <id>repository.spring.milestone</id>
        <name>Spring Milestone Repository</name>
        <url>http://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.test.testplugin</groupId>
            <artifactId>plugin</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>com.test.testutils</groupId>
            <artifactId>utils</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
        </dependency>
    </dependencies>
</dependencyManagement>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

<properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
</project>

我有一个“干净的”.m2 settings.xml,我已经清理了我的本地存储库,并确保我可以连接到 spring 里程碑存储库。

[INFO] ------------------------------------------------------------------------
[INFO] Building application 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.0.0.M1/spring-boot-maven-plugin-2.0.0.M1.pom
[WARNING] The POM for org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.M1 is missing, no dependency information available
Downloading: https://repo.maven.apache.org/maven2/org/springframework/boot/spring-boot-maven-plugin/2.0.0.M1/spring-boot-maven-plugin-2.0.0.M1.jar
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
.
.
.

[INFO] plugin ............................................. SUCCESS [  0.327 s]
[INFO] application ........................................ FAILURE [  0.881 s]
[INFO] webapp ............................................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
.
.
.
.
.

[INFO] ------------------------------------------------------------------------
[ERROR] Plugin org.springframework.boot:spring-boot-maven-plugin:2.0.0.M1 or one of its dependencies could not be resolved: Could not find artifact org.springframework.boot:spring-boot-maven-plugin:jar:2.0.0.M1 in central (https://repo.maven.apache.org/maven2) -> [Help 1]

【问题讨论】:

    标签: spring maven spring-boot


    【解决方案1】:

    Spring Plugin Release Repo 添加到Plugin-Repositories。这样它就可以找到spring-boot-maven-plugin-2.0.0.M1.jar。我已经看到它包含在that repo

    &lt;project&gt;标签下添加如下行:

    <project>
    <!------ others lines -->
        <pluginRepositories>
            <pluginRepository>
                <id>repository.spring.release</id>
                <name>Spring GA Repository</name>
                <url>https://repo.spring.io/plugins-release/</url>
            </pluginRepository>
        </pluginRepositories>
    </project>
    

    编辑

    因为我没有com.test.testplugin,所以我检查了以下内容。请删除&lt;dependencyManagement&gt; 并将&lt;dependencies&gt; 放在&lt;project&gt; 下。最终的pom.xml 看起来像:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>com.test.testapplication</groupId>
        <artifactId>application</artifactId>
        <version>1.0-SNAPSHOT</version>
        <packaging>jar</packaging>
    
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.M1</version>
        </parent>
    
        <pluginRepositories>
            <pluginRepository>
                <id>repository.spring.release</id>
                <name>Spring GA Repository</name>
                <url>https://repo.spring.io/plugins-release/</url>
            </pluginRepository>
        </pluginRepositories>
    
        <repositories>
            <repository>
                <id>repository.spring.milestone</id>
                <name>Spring Milestone Repository</name>
                <url>https://repo.spring.io/milestone</url>
            </repository>
        </repositories>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
        <properties>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
        </properties>
    </project>
    

    【讨论】:

    • 同样的问题/错误。此外,它包含在里程碑存储库中,这也是我尝试访问它的唯一原因。
    • @TiagoCasinhas,我已经更新了我的答案。请检查此
    • 感谢您一直以来的帮助。我尝试删除我的存储库标签,并使用它。有了它,我遇到了同样的问题,但删除它向我显示了一个父级相对错误,我无法理解它的原因:Here's the error
    • @TiagoCasinhas,请您现在检查一下。我更新了链接?我错过了链接上的一个 s。对不起。我认为这次成功了。
    • @TiagoCasinhas,我已经测试了添加 pluginRepositories 现在可以工作
    【解决方案2】:

    要使用 spring-boot 里程碑版本,请将以下内容添加到 pom.xml,在 &lt;project&gt;&lt;/project&gt; 之间:

    <repositories>
        <!-- for spring milestone -->
        <repository>
            <id>spring.milestone</id>
            <url>http://repo.spring.io/milestone</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <!-- for spring milestone -->
        <pluginRepository>
            <id>spring.milestone</id>
            <url>http://repo.spring.io/milestone</url>
        </pluginRepository>
    </pluginRepositories>
    

    【讨论】:

    • 编辑 2020:改用 https
    【解决方案3】:
    For 
    
      `<parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.0.M7</version>
        </parent>`
    

    在 pom.xml 中放置以下存储库标签,它帮助我构建项目。

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>repository.springframework.maven.release</id>
            <name>Spring Framework Maven Release Repository</name>
            <url>http://maven.springframework.org/milestone/</url>
        </repository>
        <repository>
            <id>org.springframework</id>
            <url> http://maven.springframework.org/snapshot</url>
        </repository>
        <repository>
            <id>spring-milestone</id>
            <name>Spring Maven MILESTONE Repository</name>
            <url>http://repo.spring.io/libs-milestone</url>
        </repository>
        <repository>
            <id>spring-release</id>
            <name>Spring Maven RELEASE Repository</name>
            <url>http://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>
    

    【讨论】:

      【解决方案4】:

      将以下内容添加到您的 pom.xml 文件中。

       <repositories>
          <repository>
              <id>spring-snapshots</id>
              <name>Spring Snapshots</name>
              <url>https://repo.spring.io/snapshot</url>
              <snapshots>
                  <enabled>true</enabled>
              </snapshots>
          </repository>
          <repository>
              <id>spring-milestones</id>
              <name>Spring Milestones</name>
              <url>https://repo.spring.io/milestone</url>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
          </repository>
      </repositories>
      
      <pluginRepositories>
          <pluginRepository>
              <id>spring-snapshots</id>
              <name>Spring Snapshots</name>
              <url>https://repo.spring.io/snapshot</url>
              <snapshots>
                  <enabled>true</enabled>
              </snapshots>
          </pluginRepository>
          <pluginRepository>
              <id>spring-milestones</id>
              <name>Spring Milestones</name>
              <url>https://repo.spring.io/milestone</url>
              <snapshots>
                  <enabled>false</enabled>
              </snapshots>
          </pluginRepository>
      </pluginRepositories>
      

      我建议你将 Spring Boot 版本更新到最新以获取最新的依赖项,目前是 2.0.0.M6,在其依赖项管理中包含 Spring 5.0.1.RELEASE。

      <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.0.0.M6</version>
          <relativePath/> <!-- lookup parent from repository -->
      </parent>
      

      或者从Spring Initializer生成一个新的基于Spring Boot 2.0的项目,所有的依赖都会被解析。

      【讨论】:

      • @EJoshuaS 我从我的项目中复制了配置,github.com/hantsy/spring-reactive-sample,这是抄袭?正如我提到的,这个配置是由 Spring Initializr 生成的,Spring Initializr 是你的工作?
      • 问题来自于spring初始化器
      【解决方案5】:

      要解决这个问题,请尝试单击重新导入所有 maven 项目按钮: :

      【讨论】:

      • 效果很好。
      【解决方案6】:

      我没有“干净的床单”settings.xml,因为我有一个个人镜像 URL。解决此问题的唯一方法是将@Hantsy 答案包含在我的settings.xml 中,而不是pom.xml

      【讨论】:

        【解决方案7】:

        如果你在中国,你可以像这样修改settings.xml文件来解决这个问题:

        <mirror>
            <id>nexus-aliyun</id>
            <mirrorOf>*</mirrorOf>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
        

        settings.xml我的路径:C:\Program Files\apache-maven-3.6.0\conf\settings.xml

        【讨论】:

          【解决方案8】:

          这个问题有点老了,但我在这里更新希望它可以帮助某人。

          就我而言,离线工作已检查,因此我遇到了错误。

          这是我所做的修复。在 Mac 中,导航到 IntelliJ 菜单并选择首选项或快捷键(Command + ,)。

          搜索 ma​​ven 并选择。然后uncheck 脱机工作(如果已检查)。

          【讨论】:

            【解决方案9】:

            我在 Intellij 中遇到了同样的问题,并且能够通过使用 Invalidate Caches 解决它。

            • 打开“文件”菜单并从下拉菜单中选择“使缓存无效”。

            • 从这里您将被提示几个选项。选中清除下载的共享索引复选框。

            • 最后,单击 Invalidate and Restart 按钮,IntelliJ 将重新加载并重新索引您项目的 Maven 依赖项。

            【讨论】:

              猜你喜欢
              • 2021-04-29
              • 1970-01-01
              • 1970-01-01
              • 2021-03-05
              • 2018-12-16
              • 2015-12-20
              • 2020-08-15
              • 2021-02-26
              • 1970-01-01
              相关资源
              最近更新 更多