现在我的项目中有很多方法可以在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("org.coody.framework:coody-elock:alpha-1.3.4")还有很多其他的方式。这让我很困惑,‘and’有什么区别?(或不是?推荐方式是哪种方式?哪种方式更好?为什么我们要这样写?)
发布于 2020-09-28 00:02:33
这些都是依赖符号的形式。请参阅此处的文档:https://docs.gradle.org/current/javadoc/org/gradle/api/artifacts/dsl/DependencyHandler.html
看到有许多方法可以做同样的事情,这是令人困惑的,但最好是坚持一种风格,并在整个项目中使用。
您将看到的最常见的形式是以下两种:
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 -
build.gradle )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。
https://stackoverflow.com/questions/64089837
复制相似问题