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:是的。除非您有一个非常不寻常的本地配置,否则默认情况下您也将拥有正确的存储库。这意味着您可以(可能)删除 <repositories>
部分。
【参考方案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 丢失,没有可用的依赖信息的主要内容,如果未能解决你的问题,请参考以下文章