如何告诉Grails使用Gradle进行依赖项解析

时间:2013-06-28 07:00:27

标签: grails gradle grails-plugin build-dependencies

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

2 个答案:

答案 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