我在我的pom.xml中指定了wicket版本1.5-RC7。当我做mvn install
时,它抱怨:The following artifacts could not be resolved: org.apache.wicket:wicket:jar:1.5-RC7, javax.transaction:jta:jar:1.0.1B
。所以我尝试在mvnrepository.com上搜索javax.transaction.jta-1.0.1B.jar,我能够找到它。为什么maven告诉我它无法解析avax.transaction:jta:jar:1.0.1B?
我的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">
…
<repositories>
<repository>
<id>mvnrepository</id>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
<dependencies>
<!-- WICKET DEPENDENCIES -->
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket</artifactId>
<version>${wicket.version}</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-spring</artifactId>
<version>${wicket.version}</version>
</dependency>
<dependency>
<groupId>org.apache.wicket</groupId>
<artifactId>wicket-extensions</artifactId>
<version>${wicket.version}</version>
</dependency>
…
</dependencies>
</build>
<properties>
<wicket.version>1.5-RC7</wicket.version>
...
</properties>
</project>
答案 0 :(得分:2)
首先,http://repo1.maven.org/maven2是Maven将查找的默认值。你不需要再次声明它。
您可以在构建时检查Maven尝试连接的服务器吗?您应该看到类似Downloading: http://whatever.com/path/to/dependencies.pom
的内容。
我刚刚检查过maven central repo,没有org.apache.wicket:wicket:1.5-RC7。您最好检查是否已声明正确的依赖
对于JTA来说,这有点棘手。对于一些Java规范JAR,由于许可问题,实际的JAR在公共中心Maven仓库中不可用。如果你看http://search.maven.org/#artifactdetails|javax.transaction|jta|1.0.1B|jar,你会看到它只包含POM,但不包含JAR。
有一些方法可以解决:
修改
我在之前的搜索中错过了wicket 1.5-RC7。抱歉。在查看POM之后,它似乎不是JAR POM。 org.apache.wicket:wicket:1.5-RC7
的类型为POM
,其中声明了对wicket-core
工件的依赖。
您有两种方法:
wicket-core
(可能还有其他wicket模块),而不是wicket
。 <type>pom</type>
(因为默认为jar
)我不熟悉Wicket,但我相信方法1是首选。
答案 1 :(得分:0)
检查你的〜/ .m2 / settings.xml,我猜你有一个内部公司(Nexus)repo mirror / proxy设置,避免你从网上取货 - 这个镜子是陈旧的。
如果是这种情况,有两种常见的解决方法:修复内部Nexus仓库,使其保持最新状态,或绕过Nexus仓库以便从互联网上取货
答案 2 :(得分:0)
我刚刚面对这个问题并解决了它。我已经看到很多与此相关的堆栈溢出问题。由于我的决议略有不同,我发布了这个答案。
问题: - 无法在项目Apigee-Edge-deploy-plugin上执行目标:无法解决项目的依赖关系io.apigee.build-tools.enterprise4g:Apigee-Edge-deploy-plugin :maven-plugin:1.0.0:无法解析以下工件:
根本原因: - Repo有项目中提到的依赖项jar。但依赖关系依次具有其他依赖关系,这些依赖关系并不存在于repo中并导致此问题。我添加了对依赖项的排除,它起作用了。
<强>例如强>: -
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-metadata</artifactId>
<version>1.3</version>
<type>jar</type>
<scope>compile</scope>
<exclusions>
<exclusion>
<artifactId>woden</artifactId>
<groupId>org.apache.woden</groupId>
</exclusion>
</exclusions>
</dependency>
<强>参考强>: - 另外,请查看关于maven依赖关系和排除的非常好的文章