我一直在尝试配置 Gradle 来管理 Grails 项目几个小时,但没有成功。我在 Stack Overflow 和互联网上的其他地方找到的建议对我不起作用。
您能给我提供有关如何配置 Gradle+Grails 项目的最新指导吗?理想情况下,它应该与当前版本的 Grails (2.1.0) 和 Gradle (1.1) 有关。
最佳答案
构建脚本
import org.grails.gradle.plugin.GrailsTask
buildscript {
repositories {
mavenCentral()
mavenRepo name: "grails", url: 'http://repo.grails.org/grails/repo'
}
dependencies {
classpath "org.grails:grails-gradle-plugin:1.1.1-SNAPSHOT"
}
}
repositories {
mavenCentral()
mavenRepo name: "grails", url: 'http://repo.grails.org/grails/repo'
}
version = "1.0"
grailsVersion = "2.1.0"
apply plugin: "grails"
dependencies {
['dependencies', 'resources', 'core', 'hibernate', 'plugin-datasource', 'plugin-domain-class', 'plugin-tomcat', 'plugin-services'].each { plugin ->
compile "org.grails:grails-$plugin:2.1.0"
}
bootstrap "org.codehaus.groovy:groovy-all:1.8.6"
}
GRAILS_TASK_PREFIX = "grails-"
if (name.startsWith(GRAILS_TASK_PREFIX)) {
project.task(name, type: GrailsTask) {
command "${name - GRAILS_TASK_PREFIX}"
}
}
初始化
那么你可以做
gradle init
初始化项目结构命令
使用
gradle grails-[grails script]
执行您的 grails 命令。例如:gradle grails-run-app
相当于 grails run-app
希望这可以帮助!
更新
这似乎适用于 Grails 2.3.2:
buildscript {
repositories {
mavenCentral()
maven { url 'http://repo.grails.org/grails/repo' }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:2.0.0-SNAPSHOT"
}
}
repositories {
mavenCentral()
maven { url 'http://repo.grails.org/grails/repo' }
}
version = "1.0"
apply plugin: "grails"
apply plugin: 'idea'
grails {
grailsVersion = "2.3.2"
}
dependencies {
['dependencies', 'core', 'spring', 'web', 'plugin-datasource', 'plugin-domain-class', 'plugin-controllers', 'plugin-services'].each { plugin ->
compile "org.grails:grails-$plugin:2.3.2"
}
compile 'org.grails.plugins:tomcat:7.0.42'
compile 'org.grails.plugins:hibernate:3.6.10.3'
compile 'com.h2database:h2:1.3.173'
bootstrap "org.codehaus.groovy:groovy-all:2.1.9"
}
注意,生成 Grails 包装器时抛出异常,但
gradle init
否则似乎正确初始化项目结构。而且,gradle grails-run-app
似乎也工作正常。
关于grails - Gradle/Grails 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12027313/