4

我正在尝试使用 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'
}
4

2 回答 2

7

我建议改用grails-gradle-plugin

更新的答案、清理和使用引导范围以将 Tomcat jar 从战争中排除。

基本信息

我在 gr8conf 2013 的 Youtube 上关注了 Luke Daley(aka alkemist)的演讲。我能够创建一个小型 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"
}
于 2013-07-23T23:19:25.020 回答
0

发短信.... ;) 开玩笑。

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

看看插件文档

于 2013-06-28T13:36:06.770 回答