2012-01-05 58 views

回答

96
  • build - 依賴性,即僅由構建過程需要
  • runtime - 所需要運行該應用程序,而不是例如編譯它依賴特定數據庫供應商的JDBC實現。這在編譯時通常不需要,因爲代碼僅依賴於JDBC API,而不是其特定的實現。
  • compile - 編譯時和運行時都需要的依賴關係。這是最常見的情況

有一對夫婦其他依賴作用域:

  • test - 相依性,僅由測試所需,例如一個嘲諷/測試庫
  • provided - 在編譯時需要依賴,但不應該與應用程序一起打包(通常是因爲它是由容器提供的)。一個例子是Servlet API
+1

Thanks,Don,很好的信息,只是另一個快速問題......'build'的約定似乎遵循''groupId:artifactId:repository或version'',運行時和編譯時它是一樣的嗎? – raffian 2012-01-06 15:15:40

+0

是的,所有示波器的公約都是一樣的。我從來沒有使用'repository' - 我甚至不知道它存在,所以在我的情況下,我指定'groupId:artifactId:version'' – 2012-01-06 16:22:35

+0

我們使用Artifactory來存儲我們所有的工件,所以這就是我提到它的原因。 ..再次感謝! – raffian 2012-01-06 16:45:42

1

buildruntimecompile,在BuildConfig.groovy(1.3.7)之間的差別一對夫婦的Grails命令幫助說明的差異。考慮grails run-appgrails compilegrails compile是編譯步驟,將包括編譯時的依賴關係。 grails run-app是運行步驟,將包含運行時相關性。構建依賴關係是運行這些命令時可能需要的任何東西,例如,掛鉤到某些構建事件的自定義腳本。

因此,當您需要確定是否包含依賴關係時,您會選擇最適合的選項。

5

看來以前的兩個答案在編譯和構建的區別上存在衝突。我認爲構建的範圍包括grails compilegrails run-app,而編譯只是前者。

相關問題