独立GORM脚本的当前依赖项是什么?

时间:2014-08-20 09:43:54

标签: grails groovy gorm grape

我正在尝试从Github跟随Graeme Rocher的例子:

https://gist.github.com/graemerocher/c25ec929d9bcd1adcbea

@Grab("org.grails:grails-datastore-gorm-hibernate4:3.0.0.RELEASE")
@Grab("org.grails:grails-spring:2.3.6")
@Grab("com.h2database:h2:1.3.164")
import grails.orm.bootstrap.*
import grails.persistence.*
import org.springframework.jdbc.datasource.DriverManagerDataSource
import org.h2.Driver

init = new HibernateDatastoreSpringInitializer(Person)
def dataSource = new DriverManagerDataSource(Driver.name, "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE", 'sa', '')
init.configureForDataSource(dataSource) 

new Person(name: "Fred Flintstone").save(flush: true, failOnError: true)

println "Total people = ${Person.count()}"

@Entity
class Person {
    String name
    static constraints = {
        name blank:false
    }
}

我正在

  

java.lang.RuntimeException:抓取Grapes时遇到错误 - [下载失败:> com.googlecode.concurrentlinkedhashmap#concurrentlinklinkhashmap-> lru; 1.3.1!concurrentlinkedhashmap-lru.jar,下载失败:> javax.transaction #jta; 1.1!jta.jar,下载失败:org.jboss.logging#jboss-> logging; 3.1.3.GA!jboss-logging.jar,下载失败:org.javassist#javassist; 3.18.1-&gt ;!GA javassist.jar(束)]

我认为这意味着某些依赖关系已经改变/消失。

此代码是否有当前正在运行的版本?

2 个答案:

答案 0 :(得分:2)

我已经尝试过使用带有各种URL的@GrabResolver()(应该说道歉)。

我尝试了杰夫贝克的答案,但无济于事。

我通过设置几个调试标志来查看发生了什么(-Dgroovy.grape.report.downloads = true -Divy.message.logger.level = 4),我经历了一段调试周期。

最终我必须创建一个自定义的〜/ .groovy / grapeConfig.xml(根据http://groovy.codehaus.org/Grape#Grape-CustomizeIvysettings)并添加了Jeff作为进一步的“ibiblio”提供的mavencentral URL。条目。

然后一切都很好。

不知道为什么@GrabResolver()没有解决,但这是一种解决方法。

答案 1 :(得分:1)

我得到以下工作正常:

@GrabResolver(name='mvncentral', root='http://central.maven.org/maven2/')
@Grab("org.grails:grails-datastore-gorm-hibernate4:3.1.1.RELEASE")
@Grab("org.grails:grails-spring:2.4.3")
@Grab("com.h2database:h2:1.3.164")
import grails.orm.bootstrap.*
import grails.persistence.*
import org.springframework.jdbc.datasource.DriverManagerDataSource
import org.h2.Driver


init = new HibernateDatastoreSpringInitializer(Person)
def dataSource = new DriverManagerDataSource(Driver.name, "jdbc:h2:prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE", 'sa', '')
init.configureForDataSource(dataSource)


println "Total people = " + Person.count()


@Entity
class Person {
    String name
    static constraints = {
        name blank:false
    }
}

我在最新版本的groovy中的默认jcenter中添加了一个不同的解析器。此外,您可能需要清除尝试下载的缓存版本。这是blog post about that