2017-08-03 74 views
6

我决定更新我的spring-boot-starter-parent到版本2.0.0.M1,以便与Spring Core 5.0.0.RC1一起使用它。Spring引导启动父2.0.0未找到依赖

但是,我有问题从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> 

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

[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] 

回答

13

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

<project>标签添加以下行像:

<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,我已经与以下检查。请删除<dependencyManagement>并将<dependencies>置于<project>之下。最终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> 
+0

相同的问题/错误。此外,它包含在里程碑存储库中,这也是我尝试访问它的唯一原因。 –

+0

@TiagoCasinhas,我已经更新了我的答案。请检查此 – sunkuet02

+0

感谢您的持续帮助。 我试图删除我的存储库标签,并与它。 有了它,我得到了同样的问题,但删除它显示我的父母相对错误,我不明白为什么它: [这是错误](https://pastebin.com/3vh26kKa) –

1

使用Spring引导里程碑版本,添加下列的pom.xml<project></project>之间:

<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> 
0

添加以下到您的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> 

我建议你更新春天启动的版本到最新得到最新的依赖关系,它是目前2.0.0.M6其中包括春季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引导2.0的项目,所有的依赖关系将会得到解决。

+0

@EJoshuaS我从我的项目中复制了配置,https://github.com/hantsy/spring-reactive-sample,它是抄袭吗?这个配置是由Spring Initializr生成的,正如我提到的,Spring Initializr是你的工作? – Hantsy

1
For 

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

在pom.xml中放置下面的repositories标签,它帮助我构建项目。

<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>