我对Maven的理解并不十分自信,所以请耐心等待:
我的POM:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.transaction</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
构建
[WARNING] The POM for org.springframework:org.springframework.transaction:jar:3.2.4.RELEASE is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.427 s
[INFO] Finished at: 2016-12-02T15:22:42-08:00
[INFO] Final Memory: 7M/77M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project PROJECT: Could not resolve dependencies for project PROJECT:jar:1.0: Failure to find org.springframework:org.springframework.transaction:jar:3.2.4.RELEASE in http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of maven2 has elapsed or updates are forced -> [Help 1]
查看http://repo1.maven.org/maven2这是有道理的。 org.springframework.transaction
确实不存在于存储库中。所以我去了this page并注意到它说该工件存在于以下存储库中:
https://artifacts.alfresco.com/nexus/content/repositories/public/
这一次,通过存储库,我确实在与我的POM中指定的groupId和artifactId匹配的目录中找到了org.springframework.transaction
。
但是这里显然没有3.2.4.RELEASE
。我的同事能够建立这个项目(虽然它已经有一段时间了,因为他们检查了新的)并且他们记得遇到了类似的问题。虽然当我们都在运行相同的POM时,我有点困惑为什么这会像存储库问题一样。
顺便说一下,有多个其他org.springframework
依赖项正在适当解析,我可以在~/.m2
中看到它们,而不是这个。
答案 0 :(得分:1)
org.springframework.transaction具有spring-tx工件ID。
我在我的pom中使用这个片段并无缝地工作:
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1000 200">
<rect id="border" x="559.5" y="0" width="440.5" height="90" />
</svg>
答案 1 :(得分:0)
你的.m2没有它,Maven试图从定义的存储库中获取它。您没有它们,或者您没有Maven的连接。 (更可能是我记得的错误所说的)。你是代理人的背后吗?
您需要定义其他存储库。在〜/ .m2 / settings.xml中或在项目级别的POM内。
类似的东西:
<repositories>
<repository>
<id>fuse-public-repository</id>
<name>FuseSource Community Release Repository</name>
<url>https://repo.fusesource.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
<updatePolicy>never</updatePolicy>
</releases>
<snapshots>
<enabled>false</enabled>
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
<repositories>
在settings.xml中的通常位于一个活动的配置文件元素中。 在POM里面就是项目内部。
PS。确保您已连接到存储库URL。如果您在代理后面,则需要在settings.xml中定义它
答案 2 :(得分:0)
正如@Vadim刚刚回答的那样,您只需将自定义回购添加到您的pom。
<repositories>
<repository>
<id>alfresco</id>
<name>your custom repo</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
</repositories>
然后你可以使用:
来获得你的依赖<dependency>
<groupId>org.springframework</groupId>
<artifactId>org.springframework.transaction</artifactId>
<version>3.2.4.RELEASE</version>
</dependency>
您可以使用此链接https://artifacts.alfresco.com/nexus/#nexus-search;quick~transaction
查看存储库内容另外要小心,不要首次使用-o标志(或在离线模式下)运行maven,以便让maven下载依赖项。