我正在尝试使用gradle设置grails项目但是我遇到了一个问题,我无法使grails使用gradle进行依赖项解析。如果我在gradle构建文件中配置依赖项并运行gradle grails-run-app,它总是报告在依赖项jar中找不到类。
当我将依赖项剪切并粘贴到Grails BuildConfig.groovy中时,一切正常。
如何告诉Grails使用Gradle进行依赖项解析?
我在这里粘贴build.gradle文件,有什么建议吗?
apply plugin: 'grails'
apply plugin: 'java'
apply plugin: 'jetty'
version "1.0-SNAPSHOT"
buildscript {
repositories {
mavenCentral()
mavenRepo urls: 'http://repository.jboss.org/nexus/content/groups/public/'
}
dependencies {
classpath 'com.connorgarvey.gradle:gradle-grails-wrapper:1.0'
}
}
grails {
version '2.2.3'
}
repositories {
mavenLocal()
mavenCentral()
mavenRepo urls: 'http://repository.jboss.org/nexus/content/groups/public/'
}
dependencies {
compile 'org.modeshape.bom:modeshape-bom-embedded:3.3.0.Final'
compile 'postgresql:postgresql:9.1-901.jdbc4'
compile 'javax.jcr:jcr:2.0'
compile 'org.modeshape:modeshape-jcr:3.3.0.Final'
}
答案 0 :(得分:7)
我建议改用grails-gradle-plugin。
更新的答案,清理和使用引导范围,以排除战争中的Tomcat jar。
一般信息
我跟随了Luke Daley(又名 alkemist )on Youtube at gr8conf 2013的演讲。我能够创建一个小POC,并且Gradle似乎可以与Grails 2.2.3一起使用。
Gradle构建文件
buildscript {
repositories {
mavenCentral()
maven { url 'http://repository.jboss.org/maven2/' }
maven { url 'http://repo.grails.org/grails/repo' }
maven { url 'http://repo.grails.org/grails/plugins' }
maven { url 'http://repository.springsource.com/maven/bundles/release' }
maven { url 'http://repository.springsource.com/maven/bundles/external' }
maven { url 'http://repository.springsource.com/maven/libraries/release' }
maven { url 'http://repository.springsource.com/maven/libraries/external' }
}
dependencies {
classpath 'org.grails:grails-gradle-plugin:2.0.0-SNAPSHOT',
'org.grails:grails-bootstrap:2.2.3'
}
}
version='0.0.1'
apply plugin: 'grails'
repositories {
mavenCentral()
maven { url 'http://repository.jboss.org/maven2/' }
maven { url 'http://repo.grails.org/grails/repo' }
maven { url 'http://repo.grails.org/grails/plugins' }
maven { url 'http://repository.springsource.com/maven/bundles/release' }
maven { url 'http://repository.springsource.com/maven/bundles/external' }
maven { url 'http://repository.springsource.com/maven/libraries/release' }
maven { url 'http://repository.springsource.com/maven/libraries/external' }
}
grails {
grailsVersion '2.2.3'
version '2.2.3'
}
configurations {
all {
exclude module: 'commons-logging'
exclude module: 'xml-apis'
}
test {
exclude module: 'groovy-all'
}
compile {
exclude module: 'hibernate'
}
}
dependencies {
compile( "org.grails:grails-crud:$grails.grailsVersion",
'org.grails:grails-gorm:1.3.7')
bootstrap "org.grails:grails-plugin-tomcat:$grails.grailsVersion"
}
答案 1 :(得分:0)
发送短信......;)开玩笑。
您必须在中包含'grails-bootstrap'工件的版本 'classpath'配置。你还应该添加任何Grails 你需要的文物。 'grails-crud'和'grails-gorm'会给你 标准Grails Web应用程序所需的一切。
查看plugin docs。