无法将Neo4j GORM插件添加到Grails项目 [英] Unable to add Neo4j GORM plugin to a Grails project

查看:101
本文介绍了无法将Neo4j GORM插件添加到Grails项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将Neo4j图形数据库用于我的Grails项目.我创建了一个新的Grails项目(我正在使用Intellij Ultimate Edition).该应用程序运行良好.当我尝试在BuildConfig.groovy中添加Neo4j依赖项(编译为:neo4j:2.0.0-M02")并尝试更新项目时,在控制台中出现以下错误:

I want to use Neo4j graph database for my Grails project. I created a new Grails project (i'm using Intellij Ultimate Edition). The app runs fine. When i try to add the Neo4j dependency (compile ":neo4j:2.0.0-M02") in my BuildConfig.groovy and try to update the project I get the following errors in the console:

Error |
Resolve error obtaining dependencies: Could not find artifact org.neo4j:neo4j-jdbc:jar:2.0.2 in grailsCentral (https://repo.grails.org/grails/plugins) (Use --stacktrace to see the full trace)
Error |
Resolve error obtaining dependencies: Could not find artifact org.neo4j:neo4j-jdbc:jar:2.0.2 in grailsCentral (https://repo.grails.org/grails/plugins) (Use --stacktrace to see the full trace)
Error |
Resolve error obtaining dependencies: Could not find artifact org.neo4j:neo4j-jdbc:jar:2.0.2 in grailsCentral (https://repo.grails.org/grails/plugins) (Use --stacktrace to see the full trace)
Error |
Could not find artifact org.neo4j:neo4j-jdbc:jar:2.0.2 in grailsCentral  (https://repo.grails.org/grails/plugins)
|Run 'grails dependency-report' for further information.

这是我的BuildConfig.groovy:

Here is my BuildConfig.groovy:

grails.servlet.version = "3.0" // Change depending on target container compliance (2.5 or 3.0)
grails.project.class.dir = "target/classes"
grails.project.test.class.dir = "target/test-classes"
grails.project.test.reports.dir = "target/test-reports"
grails.project.work.dir = "target/work"
grails.project.target.level = 1.6
grails.project.source.level = 1.6
//grails.project.war.file = "target/${appName}-${appVersion}.war"

grails.project.fork = [
    // configure settings for compilation JVM, note that if you alter the Groovy version forked compilation is required
    //  compile: [maxMemory: 256, minMemory: 64, debug: false, maxPerm: 256, daemon:true],

    // configure settings for the test-app JVM, uses the daemon by default
    test: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, daemon:true],
    // configure settings for the run-app JVM
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the run-war JVM
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    // configure settings for the Console UI JVM
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]

grails.project.dependency.resolver = "maven" // or ivy
grails.project.dependency.resolution = {
    // inherit Grails' default dependencies
    inherits("global") {
        // specify dependency exclusions here; for example, uncomment this to disable ehcache:
        // excludes 'ehcache'
    }
    log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose'
    checksums true // Whether to verify checksums on resolve
    legacyResolve false // whether to do a secondary resolve on plugin installation, not advised and here for backwards compatibility

    repositories {
        inherits true // Whether to inherit repository definitions from plugins

        grailsPlugins()
        grailsHome()
        mavenLocal()
        grailsCentral()
        mavenCentral()
        // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories
        //mavenRepo "http://repository.codehaus.org"
        //mavenRepo "http://download.java.net/maven/2/"
        //mavenRepo "http://repository.jboss.com/maven2/"
    }

    dependencies {
        // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes e.g.
        // runtime 'mysql:mysql-connector-java:5.1.29'
        // runtime 'org.postgresql:postgresql:9.3-1101-jdbc41'
        test "org.grails:grails-datastore-test-support:1.0.2-grails-2.4"
    }

    plugins {
        // plugins for the build system only
        build ":tomcat:7.0.55"

        // plugins for the compile step
        compile ":neo4j:2.0.0-M02"
        compile ":scaffolding:2.1.2"
        compile ':cache:1.1.8'
        compile ":asset-pipeline:1.9.9"

        // plugins needed at runtime but not for compilation
        runtime ":hibernate4:4.3.6.1" // or ":hibernate:3.6.10.18"
        runtime ":database-migration:1.4.0"
        runtime ":jquery:1.11.1"

        // Uncomment these to enable additional asset-pipeline capabilities
        //compile ":sass-asset-pipeline:1.9.0"
        //compile ":less-asset-pipeline:1.10.0"
        //compile ":coffee-asset-pipeline:1.8.0"
        //compile ":handlebars-asset-pipeline:1.3.0.3"
    }
}

我什至尝试使用'grails install-plugin neo4j'命令安装它,但是出现相同的错误. 一些帮助会很好.谢谢您的时间!

I even tried to install it with the 'grails install-plugin neo4j' command, but I get the same errors. Some help would be nice. Thank you for your time!

快速更新:如果我将依赖项'compile:neo4j:2.0.0-M02"替换为'compile:neo4j:2.0.0-M01",则可以正常运行.所以我想这与最新版本有关.我希望有人可以向我解释为什么它不起作用.

QUICK UPDATE: If I replace the dependency 'compile ":neo4j:2.0.0-M02"' with ' compile ":neo4j:2.0.0-M01"' it works fine. So i guess it has to do with the latest version. I hope someone can provide me an explanation of why it doesn't work.

部分解决:多亏了Burt Beckwith,我终于能够使那些依赖项起作用.但是,当我运行该应用程序时,出现了另一个错误:

Partially solved: Thanks to Burt Beckwith i was finally able to make those dependencies work. However when I ran the app i got another error:

Error |
2015-01-02 13:25:59,826 [localhost-startStop-1] ERROR context.GrailsContextLoaderListener  - Error initializing the application: No bean named 'sessionFactory' is defined
Message: No bean named 'sessionFactory' is defined
    Line | Method
->>  104 | postProcessBeanFactory in org.grails.datastore.gorm.plugin.support.PersistenceContextInterceptorAggregator
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    262 | run                    in java.util.concurrent.FutureTask
|   1145 | runWorker . . . . . .  in java.util.concurrent.ThreadPoolExecutor
|    615 | run                    in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run . . . . . . . . .  in java.lang.Thread
Error |
Forked Grails VM exited with error

结束:最后一个错误与hibernate插件有关.我将其删除,只剩下Neo4j,该应用程序终于启动了.

End: The last error had something to do with the hibernate plugin. I removed it, and left only Neo4j, and the app finally started.

推荐答案

错误告诉您在grailsCentral中找不到依赖项org.neo4j:neo4j-jdbc:jar:2.0.2,但这有点误导-这意味着它尝试了所有BuildConfig.groovy中列出的您的存储库中,找不到任何存储库,因此它报告它尝试的最后一个存储库.

The error is telling you that it can't find dependency org.neo4j:neo4j-jdbc:jar:2.0.2 in grailsCentral but that's a little misleading - what this means is that it tried all of your repos listed in BuildConfig.groovy and couldn't find it in any, so it reports the last one it tried.

搜索neo4j-jdbc maven 2.0.2会导致 https://maven -repository.com/artifact/org.neo4j/neo4j-jdbc/2.0.2 导致

Googling for neo4j-jdbc maven 2.0.2 leads to https://maven-repository.com/artifact/org.neo4j/neo4j-jdbc/2.0.2 which leads to http://m2.neo4j.org/releases/org/neo4j/neo4j-jdbc/2.0.2/ and there is a neo4j-jdbc-2.0.2.jar there. So working backwards and removing the version, id, and group from that url you need to add this repo url:

repositories {
   ...
   mavenRepo 'http://m2.neo4j.org/releases'
}

然后它将解决.

这篇关于无法将Neo4j GORM插件添加到Grails项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆