我如何使用远程Maven存储库

时间:2018-07-25 06:10:36

标签: java spring maven

我是Maven的新手。我正在尝试在我的Maven项目中使用springframework。我发现春季版本https://repo.maven.apache.org/maven2太旧了,因此我尝试在pom.xml中包含另一个存储库http://repo.spring.io/release/

    <?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>abc</groupId>
    <artifactId>xyz</artifactId>
    <packaging>jar</packaging>
    <version>1.0</version>

    <repositories>
        <repository>
            <id>spring</id>
            <name>spring</name>
            <url>http://repo.spring.io/release/</url>
        </repository>
        <repository>
            <id>maven-apache</id>
            <name>maven-apache</name>
            <url>https://repo.maven.apache.org/maven2</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.spring-beans</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.0.0.RELEASE</version>
        </dependency>
    </dependencies> 

</project>

但是当我运行mvn compile时,仍然出现以下错误

    [WARNING] The POM for org.springframework.spring-beans:spring-beans:jar:5.0.0.RELEASE is missing, no dependency information available
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 0.324 s
    [INFO] Finished at: 2018-07-24T23:06:42-07:00
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project XXXX: Could not resolve dependencies for project XXXX:jar:1.0: Failure to find org.springframework.spring-beans:spring-beans:jar:5.0.0.RELEASE in http://repo.spring.io/release/ was cached in the local repository, resolution will not be reattempted until the update interval of spring has elapsed or updates are forced -> [Help 1]
    [ERROR]

有什么想法可以完成这项工作吗?

4 个答案:

答案 0 :(得分:1)

通常,您应该检查Maven Central Repository中所需的所有依赖项。您将可以在那里找到大多数“免费”依赖项。在少数情况下,您将无法在其中找到所需的东西。

确定所需的依赖关系和所需的版本后,您会在左侧看到以下内容:

Apache Maven Dependency

从那里获得的信息可以很容易地复制粘贴到您的项目中。另外,强烈建议对所有相关的依赖项使用相同的版本,并通过定义变量将它们一起释放。

您可以这样定义一个变量:

<properties>
    <spring.version>5.0.7.RELEASE</spring.version> --> the version from maven central
</properties>

然后您可以包括如下依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${spring.version}</version>
</dependency>

如果您有多个pom.xml文件,并且有一个父亲->子关系,则不需要在子文件中包含依赖项版本,因为它将自动从父项的版本继承而来。您将可以执行以下操作:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
</dependency>

对于特殊的Spring,如果您需要多个依赖项,我建议您看一下spring-boot。您可以找到有关spring-boot here的更多信息。另外,当您使用spring-boot时,通常不需要手动处理依赖项的版本。

链接引用:

  

使用Spring Boot可以轻松地创建独立的,基于生产级别的基于Spring的应用程序,您可以对其进行“运行”。

     

我们对Spring平台和第三方库持坚定态度,因此您可以以最小的麻烦开始使用。大多数Spring Boot应用程序只需要很少的Spring配置。

结论是,您不需要添加其他存储库,并且依赖项的groupId看起来应该像这样:<groupId>org.springframework</groupId>,一切都会正常工作。

答案 1 :(得分:0)

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>5.0.0.RELEASE</version>
</dependency>

删除组ID上的四季豆

答案 2 :(得分:0)

删除groupId中的 .spring-beans

只需将<groupId>org.springframework.spring-beans</groupId>更改为<groupId>org.springframework</groupId>

答案 3 :(得分:-1)

您应该尝试添加这样的依赖项:

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>${org.springframework.version}</version>
</dependency>