Я разрабатываю проект с Dropwizard и Titan DB. Оба зависят от Google Guava. Один зависит от версии 15, а другой на 18. Эта ошибка возникает во время выполнения:Как разрешить конфликты зависимостей с Gradle?
! java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class com.thinkaurelius.titan.graphdb.database.idassigner.StandardIDPool$ID
BlockRunnable
Я исследовал ошибку и found, что она была вызвана гуавы 15.0 зависимость Титана выселяют от гуавы 18,0.
Я новичок в Java и Gradle. Я использую плагины Gradle java
и application
для создания и запуска основного класса с gradle run
. Как я могу решить эту проблему?
Вот мой build.gradle
:
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.example.rest.App"
repositories {
mavenCentral()
}
dependencies {
compile (
[group: 'io.dropwizard', name: 'dropwizard-core', version: '0.8.0-rc1'],
[group: 'com.thinkaurelius.titan', name: 'titan-core', version: '0.5.1'],
[group: 'com.thinkaurelius.titan', name: 'titan-berkeleyje', version: '0.5.1'],
[group: 'com.tinkerpop', name: 'frames', version: '2.6.0']
)
testCompile group: 'junit', name: 'junit', version: '3.8.1'
}
run {
if (project.hasProperty("appArgs")) {
args Eval.me(appArgs)
}
}
Я бы предпочел не строить жирные банки для работы/тестирования, если это возможно. В настоящее время я читаю http://www.gradle.org/docs/current/userguide/dependency_management.html. –
Можете ли вы показать свой файл 'build.gradle'? – fge
@fge Просто поставьте это. Чем больше я читаю dependency_management.html, тем больше мне кажется, что мне нужно продолжать читать эту страницу. –