首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们应该选择哪种方式在gradle中编写api引用

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

Stack Overflow用户
提问于 2020-09-27 22:57:52
回答 1查看 20关注 0票数 0

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

代码语言:javascript
复制
api "com.zaxxer:HikariCP:3.4.5"

或者这样:

代码语言:javascript
复制
api group: 'com.aliyun.oss', name: 'aliyun-sdk-oss', version: '3.8.0'

或者这样:

代码语言:javascript
复制
api "com.baomidou:mybatis-plus-boot-starter:3.2.0"

还有这个:

代码语言:javascript
复制
api("org.coody.framework:coody-elock:alpha-1.3.4")

还有很多其他的方式。这让我很困惑,‘and’有什么区别?(或不是?推荐方式是哪种方式?哪种方式更好?为什么我们要这样写?)

EN

回答 1

Stack Overflow用户

发布于 2020-09-28 00:02:33

这些都是依赖符号的形式。请参阅此处的文档:https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/dsl/DependencyHandler.html

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

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

代码语言:javascript
复制
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构建文件的方法:

https://docs.gradle.org/current/userguide/kotlin_dsl.html -

  • Groovy DSL (build.gradle )
  • Kotlin DSL (build.gradle.kts)

从名称可以看出,一个使用Groovy语言,另一个使用Kotlin。

'"有什么不同

在Groovy DSL中,单引号字符串和双引号字符串实际上是相同的。在文档here中描述了不同之处,但对于上面的示例,获得了相同的结果。归根结底,这取决于您对使用哪种方法的偏好。

在Kotlin DSL中,单引号表示Char,双引号表示String。因此,如果您正在使用Kotlin DSL "",则必须使用双引号。

与(或不)有什么不同?

在Groovy DSL中,括号是可选的。这是Groovy语言本身的一个特性,而不是Gradle实现的东西。你可以在这里阅读更多关于它的内容:https://groovy-lang.org/style-guide.html#_omitting_parentheses。一般来说,没有区别,归根结底是偏好。

Kotlin也有这个功能,但是因为它是静态类型的,所以在与Gradle无关的地方可以和不能使用它有限制。你可以在这里准备好更多的信息:https://kotlinlang.org/docs/reference/lambdas.html#passing-a-lambda-to-the-last-parameter

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

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

此外,Spring Boot团队最近迁移到了Gradle。您可以在此处的博客中了解他们的迁移努力:https://spring.io/blog/2020/06/08/migrating-spring-boot-s-build-to-gradle

在博客的评论中,解释了为什么他们选择Groovy DSL而不是Kotlin DSL:https://spring.io/blog/2020/06/08/migrating-spring-boot-s-build-to-gradle#comment-4946981443

根据我们的经验,使用Kotlin DSL需要集成开发环境的一些帮助,而Groovy DSL可以手动编写。虽然Kotlin DSL的自动完成在IntelliJ IDEA中非常出色,但在Eclipse中并非如此。我们的团队混合使用了Eclipse和IntelliJ的想法,我们也希望项目对贡献者是可访问的,无论他们使用什么集成开发环境。总而言之,这导致我们在build.gradle脚本中使用Groovy DSL。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64089837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档