我们应该选择哪种方式在gradle中编写api引用

我们应该选择哪种方式在gradle中编写api引用,gradle,Gradle,现在在我的项目中,有很多方法可以在build.gradle中添加依赖项,它看起来不太干净,所以我想在整个项目中选择一种方法,现在gradle版本是6.0,依赖项如下: api "com.zaxxer:HikariCP:3.4.5" 或者这个: api group: 'com.aliyun.oss', name: 'aliyun-sdk-oss', version: '3.8.0' api "com.baomidou:mybatis-plus-boot-start

现在在我的项目中,有很多方法可以在
build.gradle
中添加依赖项,它看起来不太干净,所以我想在整个项目中选择一种方法,现在gradle版本是6.0,依赖项如下:

api "com.zaxxer:HikariCP:3.4.5"
或者这个:

api group: 'com.aliyun.oss', name: 'aliyun-sdk-oss', version: '3.8.0'
api "com.baomidou:mybatis-plus-boot-starter:3.2.0"
或者这个:

api group: 'com.aliyun.oss', name: 'aliyun-sdk-oss', version: '3.8.0'
api "com.baomidou:mybatis-plus-boot-starter:3.2.0"
这是:

api("org.coody.framework:coody-elock:alpha-1.3.4")

还有很多其他的方法。这让我感到困惑,“和”有什么区别?有什么区别(或没有?哪种方式是推荐方式?哪种方式是更好的方式?为什么我们应该这样写?

这些都是依赖性符号的形式。请参阅此处的文档:

看到有很多方法可以做同样的事情是令人困惑的,但是最好坚持一种风格并在整个项目中使用

您将看到的最常见的形式是以下两种:

api "com.baomidou:mybatis-plus-boot-starter:3.2.0" // double quoted string
api 'com.baomidou:mybatis-plus-boot-starter:3.2.0' // single quoted string
对于其他问题,您需要知道有(2)种编写Gradle构建文件的方法:

  • Groovy DSL(
    build.gradle
  • Kotlin DSL(
    build.gradle.kts
    )-
从名称可以看出,一个使用Groovy语言,一个使用Kotlin

在Groovy DSL中,单引号字符串和双引号字符串实际上是相同的。文档中描述了它们之间的差异,但对于上面的示例,实现了相同的结果。这归结为您使用哪个字符串的首选项

在Kotlin DSL中,单引号表示a,双引号表示a。因此,如果使用Kotlin DSL,则必须使用双引号

有什么不同

在Groovy DSL中,括号是可选的。这是Groovy语言本身的一项功能,而不是Gradle实现的功能。您可以在此处阅读更多有关它的内容:。一般来说,没有区别,它归结为首选项

Kotlin也具有此功能,但由于它是静态类型的,因此在与Gradle无关的地方可以和不能使用它有一些限制。您可以在此处准备更多关于它的信息:

哪种方式更好?为什么我们要这样写

做事情没有更好或正确的方法。重要的是一致性。坚持一种风格,并在整个项目中使用它


除此之外,Spring Boot团队最近迁移到了Gradle。您可以在以下博客中了解他们的迁移工作:

在博客的评论中,解释了为什么他们选择Groovy DSL而不是Kotlin DSL:

根据我们的经验,使用Kotlin DSL需要IDE的帮助,而Groovy DSL可以手工编写。虽然Kotlin DSL的自动完成功能在IntelliJ IDEA中非常出色,但在Eclipse中却不是这样。我们的团队使用Eclipse和IntelliJ IDEA的混合,我们还希望项目能够被contributo访问总之,这导致我们在build.gradle脚本中使用Groovy DSL