关于Gradle for Android Development的一些问题

时间:2016-06-17 15:45:38

标签: java android gradle android-gradle

我对Gradle有一些疑问。

  1. buildscript.dependenciesdependencies之间有什么区别? classpath
  2. compileapply plugin:之间的区别是什么?
  3. HashSet<string> uniqueStrings = new HashSet<string>(); foreach (string s1 in list1) { uniqueStrings.Add(s1); } foreach (string s2 in list2) { uniqueStrings.Add(s2); } 是什么意思?

2 个答案:

答案 0 :(得分:2)

只需查看他们的文档,他们已经很好地描述了它。但就是这样: 1:

  

如果构建脚本需要使用外部库,则可以添加它们   到构建脚本本身的脚本的类路径。你做这个   使用buildscript()方法,传入一个声明的闭包   构建脚本类路径。

这对外部依赖项很有用(例如来自于buildcript部分的Internet repos。)

2: Docs包含每个表格和说明。 编译时会在编译时获得依赖关系。 (例如,您可以设置'runtime',这些依赖项将在运行时使用,或者testCompile仅在编译测试期间使用)。这是非常重要的!阅读他们的文档。当然,你可以尝试每次编译所有内容,但这真是个糟糕的主意。很好的例子是JUnit测试,你只需要在编译测试期间使用JUnit然后使用compileTest:

 testCompile "junit:junit:X.YZ"

3: 这意味着你应用插件:)你应用java,或者当你需要弹簧或弹簧启动时,你只需要告诉Gradle,嘿Gradle,我将使用它,所以适用它。更多here

答案 1 :(得分:1)

我建议你下载完整的Gradle发行版,只是因为它提供了用户指南的PDF版本(我不知道有任何其他方式来获取用户指南PDF)。从上到下阅读,跳过与您无关的章节。您将获得所有这些问题的答案,以及您尚未提出的更多问题。

但是,我会给你一些简短的答案。

Q1:Gradle具有构建脚本的依赖关系,以及您正在构建的代码的依赖关系。它们是分开的。

Q2:Classpath是Java使用的运行时概念,Gradle以不同的方式使用它。编译是一种“配置”,您可以添加依赖项,这会影响最终的运行时类路径。

问题3:“apply plugin”正在应用Gradle插件。阅读用户指南。