在build.gradle
中,我有:
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.test:test:1.2.1'
}
gradlew build
找到了罐子,但是我无法使用罐子中的任何类,因为我刚得到:
error: cannot find symbol
symbol: class MatrixMessageHandler
要在项目中使用jar,还需要执行其他步骤吗?
编辑:
我怀疑这是a事。该jar依赖于activemq-broker-5.8.0
,但是gradle忽略了它,并使用了本地Maven存储库中不存在的5.15.8
。我怀疑这是导致问题的原因:
11:12:41.670 [DEBUG] [io.spring.gradle.dependencymanagement.internal.VersionConfiguringAction] Using version '5.15.8' for dependency 'org.apache.activemq:activemq-broker:5.8.0'
出于某种原因,gradle会组成一个随机版本来替换本地Maven存储库(5.8.0
)中的版本
答案 0 :(得分:0)
出于某种原因gradle用先前的版本替换了依赖的有效版本:
11:12:41.670 [DEBUG] [io.spring.gradle.dependencymanagement.internal.VersionConfiguringAction] Using version '5.15.8' for dependency 'org.apache.activemq:activemq-broker:5.8.0'
5.15.8
曾经在本地Maven存储库的pom
中,但是我删除了该版本的jar并删除了gradle缓存,但是我无法得到gradle来忘记它。
rm -r ~/.gradle/caches/*
此先前的依赖项在本地Maven存储库中不存在:
org.apache.activemq:activemq-broker:5.15.8
最新依赖项存在于本地Maven存储库中
org.apache.activemq:activemq-broker:5.8.0
解决方案是强制gradle使用最新的依赖项:
compile 'org.apache.activemq:activemq-broker:5.8.0'
如果您不知道依赖项是什么,则不能选择。在这种情况下,我会在开发项目时做。清除全局缓存没有任何作用,因此我删除了build
目录,从build.gradle
中删除了上面的行,现在可以正常工作了。
因此,真正的问题似乎是由于过时的缓存/构建,gradle无法解决mavenLocal()
中的依赖项。