繁体   English   中英

Grails BuildConfig.groovy,构建,编译和运行时之间的区别?

[英]Grails BuildConfig.groovy, difference between build, compile, and runtime?

BuildConfig.groovy (1.3.7)中buildruntimecompile之间的区别是什么

grails.project.dependency.resolution = {

    plugins {
        build "acme:acme-cache:latest.integration"
    }

    dependencies {
        build "com.foo.bar:foobar:1.0.5"       
        runtime "org.apache.httpcomponents:httpclient:4.0.3"
        compile("com.thoughtworks.xstream:xstream:1.3.1")
    }
}
  • build - 只有构建过程需要的依赖项
  • runtime - 运行应用程序所需的依赖关系,但不编译它,例如特定数据库供应商的JDBC实现。 在编译时通常不需要这样做,因为代码仅依赖于JDBC API,而不是其特定实现
  • compile - 在编译时和运行时都需要的依赖项。 这是最常见的情况

还有一些其他依赖范围:

  • test - 仅由测试所需的依赖性,例如模拟/测试库
  • provided - 编译时需要的依赖项,但不应与应用程序打包(通常是因为它是由容器提供的)。 一个例子是Servlet API

似乎前两个答案在编译和构建之间的区别上存在冲突。 我相信build是包含grails compilegrails run-app ,而compile只是前者。

从Grails 3开始,依赖项由Gradle管理。 grails-app/conf/BuildConfig.groovy文件已被项目根目录中的build.gradle文件替换

Grails用户指南介绍了如何使用gradle设置grails依赖关系,并参考相关的Gradle文档以获取有关此主题的更多详细信息。

一对grails命令有助于说明差异。 考虑grails run-appgrails compile grails compile是编译步骤,将包含编译时依赖项。 grails run-app是运行步骤,将包含运行时依赖项。 构建依赖项是运行任何这些命令所需的任何内容,例如,挂钩到某些构建事件的自定义脚本。

因此,当您需要确定包含依赖项时,您会选择最适合的那个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM