org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE 的 POM 丢失,没有可用的依赖信息

Posted

技术标签:

【中文标题】org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE 的 POM 丢失,没有可用的依赖信息【英文标题】:The POM for org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE is missing, no dependency information available 【发布时间】:2011-08-06 19:06:06 【问题描述】:

当包含到pom.xml

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>org.springframework.security.web</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

有仓库

    <repository>
        <id>com.springsource.repository.bundles.milestone</id>
        <name>EBR Spring Milestone Repository</name>
        <url>http://repository.springsource.com/maven/bundles/milestone</url>
    </repository>
    <repository>
        <id>org.springframework.maven.milestone</id>
        <name>Maven Central Compatible Spring Milestone Repository</name>
        <url>http://maven.springframework.org/milestone</url>
    </repository>
    <repository>
        <id>com.springsource.repository.bundles.release</id>
        <name>EBR Spring Release Repository</name>
        <url>http://repository.springsource.com/maven/bundles/release</url>
    </repository>
    <repository>
        <id>com.springsource.repository.bundles.external</id>
        <name>EBR External Release Repository</name>
        <url>http://repository.springsource.com/maven/bundles/external</url>
    </repository>

我在进行 maven 构建时收到以下错误消息:

The POM for org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE is missing, no dependency information available

其他 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>test</artifactId>
<packaging>jar</packaging>
<version>1.0.1</version>
<name>test</name>
<url>http://test</url>
<dependencies>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>org.springframework.security.web</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>
</dependencies>

<repositories>
    <repository>
        <id>com.springsource.repository.bundles.milestone</id>
        <name>EBR Spring Milestone Repository</name>
        <url>http://repository.springsource.com/maven/bundles/milestone</url>
    </repository>
    <repository>
        <id>org.springframework.maven.milestone</id>
        <name>Maven Central Compatible Spring Milestone Repository</name>
        <url>http://maven.springframework.org/milestone</url>
    </repository>
    <repository>
        <id>com.springsource.repository.bundles.release</id>
        <name>EBR Spring Release Repository</name>
        <url>http://repository.springsource.com/maven/bundles/release</url>
    </repository>
    <repository>
        <id>com.springsource.repository.bundles.external</id>
        <name>EBR External Release Repository</name>
        <url>http://repository.springsource.com/maven/bundles/external</url>
    </repository>
</repositories>
</project>

当调用mvn -U install(强制更新检查)时,它会给出

[ERROR] Failed to execute goal on project test: Could not resolve dependencies for project test:test:jar:1.0.1: Could not find artifact org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE in com.springsource.repository.bundles.milestone (http://repository.springsource.com/maven/bundles/milestone)

【问题讨论】:

你为什么要使用那些非标准的存储库? 什么是标准存储库,以便我们摆脱其他存储库? @Lars:肖恩的回答有一个链接。 @Donal:我无法提取存储库 URL,因为它还包含版本号。我是否应该将 http://repo2.maven.org/maven2/ 作为所有 spring 模块的存储库? @Lars:是的。除非您有一个非常不寻常的本地配置,否则默认情况下您也将拥有正确的存储库。这意味着您可以(可能)删除 &lt;repositories&gt; 部分。 【参考方案1】:

我看到the repository 已正确填充,因此问题是artifactId 错误。这是spring-security-web,不是org.springframework.security.web

【讨论】:

所以我关注的static.springsource.org/spring-security/site/… 中有一个错误的例子。感谢您指出多纳尔!有趣的是 org.springframework.security.web 与 3.0.3.RELEASE 版本配合得很好。 @Lars:你必须真的通过 Spring 文档观看它;它充满了这些微妙的错误。 (嗯,也许不是“满”,但我过去肯定打过几个,足以让我不再信任它了……) 接下来的事情是宠物诊所的例子不再工作了。在肖恩的回答中查看我的评论。春天过去了,现在是夏天了……【参考方案2】:

您使用了错误的 artifactId。使用这个:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-web</artifactId>
    <version>3.0.5.RELEASE</version>
</dependency>

而且您不需要任何自定义存储库,您可以找到它in Maven Central。

【讨论】:

【参考方案3】:

http://static.springsource.org/spring-security/site/petclinic-tutorial.html 给出了错误的工件 ID,我从中复制了依赖项。有趣的是,它适用于 3.0.3.RELEASE 版本,但不适用于 3.0.5.RELEASE。

感谢肖恩的提示,我更新了答案。

【讨论】:

谢谢肖恩,我更新了我的答案。宠物诊所的例子根本不起作用。尽管 Spring Security 的工件 ID 错误,但有人已将主干更改为不再正确处理静态资源的版本。但这是另一个话题。

以上是关于org.springframework.security:org.springframework.security.web:jar:3.0.5.RELEASE 的 POM 丢失,没有可用的依赖信息的主要内容,如果未能解决你的问题,请参考以下文章