2013-06-28 91 views
4

我正在尝试使用Gradle来设置Grails项目,但是我遇到了一个问题,我无法让grails使用gradle进行依赖关系解析。如果我在gradle构建文件中配置依赖关系并运行gradle grails-run-app,它总是报告无法在依赖关系jar中找到类。如何告诉Grails使用Gradle进行依赖关系解析

当我剪切和粘贴到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

发送文本....;)开玩笑。

您必须在 'classpath'配置中包含'grails-bootstrap'工件的一个版本。您还应该添加您需要的任何Grails 工件。 'grails-crud'和'grails-gorm'会为您提供标准Grails Web应用程序所需的一切。

看一看plugin docs

+0

感谢您的答复,我没有使用gradle这个-的Grails,插件,因为此插件不与gradle这个1.6和Grails 2.2.3工作。它始终报告我的grails版本是2.2.3,所需版本是1.4.3请升级grails。所以我转向gradle-grails包装。 – user2478308

+0

详细错误信息。应用程序需要grails版本[2.2.3],但GRAILS_HOME的版本是[1.3.4] - 如果此Grails版本比您的应用程序所期望的版本更新,请使用正确的Grails版本或运行“grails升级”。 – user2478308

+0

@ user2478308您是否将GRAILS_HOME设置为1.3.4的类路径变量? – dmahapatro

7

我会推荐使用grails-gradle-plugin来代替。

UPDATED ANSWER,清理和使用引导范围从战争中排除Tomcat罐子。

一般信息

我跟着卢克·戴利(又名alkemiston Youtube at gr8conf 2013演示。我能够创建一个小的POC,并且Gradle似乎可以在Grails 2.2.3中正常工作。

摇篮构建文件

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" 
}