Sto sviluppando un progetto con Dropwizard e Titan DB. Entrambi dipendono da Google Guava. Un dipende versione da 15 e l'altro il 18. Questo errore si verifica in fase di esecuzione:Come posso risolvere i conflitti di dipendenza con 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
ho ricercato l'errore e found che è stato causato da Guava 15,0 dipendenza di Titano essere sfrattati da Guava 18,0.
Sono nuovo di Java e Gradle. Uso i plug-in di Gradle java
e application
per creare ed eseguire la classe principale con gradle run
. Come posso risolvere questo problema?
Ecco il mio 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)
}
}
Preferisco non costruire giare di grasso per correre/testare, se possibile. Attualmente sto leggendo http://www.gradle.org/docs/current/userguide/dependency_management.html. –
Puoi mostrare il tuo file 'build.gradle'? – fge
@fge Mettilo su. Più leggo dependency_management.html, più mi sembra di aver bisogno di continuare a leggere quella pagina. –