Java Gradle mavenLocal找到了jar,但没有';不包括编译
在Java Gradle mavenLocal找到了jar,但没有';不包括编译,java,gradle,gradlew,Java,Gradle,Gradlew,在build.gradle中,我有: repositories { mavenLocal() mavenCentral() } dependencies { compile 'com.test:test:1.2.1' } gradlew build找到jar,但我无法使用jar中的任何类,因为我刚刚得到: error: cannot find symbol symbol: class MatrixMessageHandler 要在项目中使用jar,还需要另外一个步骤吗 编辑:
build.gradle
中,我有:
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
compile 'com.test:test:1.2.1'
}
gradlew build
找到jar,但我无法使用jar中的任何类,因为我刚刚得到:
error: cannot find symbol
symbol: class MatrixMessageHandler
要在项目中使用jar,还需要另外一个步骤吗
编辑:
我怀疑这是一个渐变的东西。jar依赖于activemq-broker-5.8.0
,但gradle忽略了它,并使用本地maven repo中不存在的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 repo(
5.8.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 repo的pom
中,但我删除了该版本的jar并删除了gradle缓存,但我无法让gradle忘记它
rm -r ~/.gradle/caches/*
本地maven repo中不存在以前的依赖项:
org.apache.activemq:activemq-broker:5.15.8
org.apache.activemq:activemq-broker:5.8.0
本地maven回购协议中存在最新的依赖关系:
org.apache.activemq:activemq-broker:5.15.8
org.apache.activemq:activemq-broker:5.8.0
解决方案是强制gradle使用最新的依赖项:
compile 'org.apache.activemq:activemq-broker:5.8.0'
如果您不知道依赖项是什么,那么这不是一个选项。在这种情况下,我会按照我开发的项目来做。清除全局缓存没有任何作用,因此我删除了build
目录,从build.gradle
中删除了上面的行,现在它开始工作了
所以真正的问题似乎是gradle没有在
mavenLocal()中解析依赖项
由于过时的缓存/构建。compile
是不推荐使用的。执行不起作用。我只是建议compile
是不推荐使用的并不意味着它可以解决以下问题:p是否可以显示更多错误?这只是一个标准符号找不到错误公共类MessageHandler实现MatrixMessageHandler{^symbol:类MatrixMessageHandler-MatrixMessageHandler位于通过mavenLocal引入的jar中