Grails BuildConfig.groovy,构build,编译和运行时间的区别?
在BuildConfig.groovy
(1.3.7)中build
, runtime
和compile
什么区别?
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
– 依赖,只有构build过程需要 -
runtime
– 运行应用程序所需的依赖性,但不编译它,例如特定数据库供应商的JDBC实现。 这在编译时通常不需要,因为代码只依赖于JDBC API,而不是特定的实现 - 在编译时和运行时都需要
compile
依赖。 这是最常见的情况
还有一些其他的依赖范围:
-
test
依赖关系,只有testing需要,例如模拟/testing库 -
provided
– 在编译时需要依赖,但不应该与应用程序一起打包(通常是因为它是由容器提供的)。 一个例子是Servlet API
看来以前的两个答案在编译和编译的区别上是冲突的。 我认为build是包含grails compile
和grails run-app
,而compile只是前者。
从Grails 3开始,依赖由Gradlepipe理。 grails-app/conf/BuildConfig.groovy
文件已被项目根目录下的build.gradle
文件replace 。
Grails用户指南解释如何使用gradle设置grails依赖关系,并参考相关的Gradle文档以获得关于此主题的更多详细信息。
一对夫妇grails命令帮助说明区别。 考虑一下grails run-app
和grails compile
。 grails compile
是编译步骤,将包括编译时间依赖关系。 grails run-app
是运行步骤,将包含运行时依赖项。 构build依赖关系是可能需要运行这些命令的任何东西,例如,挂钩到某些构build事件的自定义脚本。
所以当你需要确定依赖包括在内时,你会select最适合的。