java - Gradle深度讲解中的build-by-convention是什么?

标签 java gradle conventions declarative

Gradle User Guide经常提到 Gradle 是声明式 并使用按约定构建。这是什么意思?

根据我的理解,这意味着,例如,在 java 插件中有这样的约定 源必须在src/main/java,测试必须在src/main/test,资源在src/main/resources,就绪build/libs 中的 jars 等等。但是,Gradle 不强制您使用这些约定,您可以根据需要更改它们。

但是对于第一个概念,我在理解上有更大的问题。就像 SQL 一样,你说你想对你的查询做什么,但不说数据库系统将如何获得它们,使用哪种算法来提取数据等。

请告诉我更多信息以正确理解这些概念。谢谢。

最佳答案

您对按约定构建 的理解是正确的,因此我不必在那里添加任何内容。 (另请参阅 Jeff 的回答。)

声明式背后的想法是,您不必在任务级别上工作,自己实现/声明/配置所有任务及其依赖项,而是可以在更高、更具声明性的级别上工作.您只需说“这是一个 Java 项目”(apply plugin: "java")、“这是我的二进制存储库”(repositories { ... })、“这是我的来源”(sourceSets { ... }),“这些是我的依赖项”(dependencies { ... })。基于此声明性信息,Gradle 将确定需要哪些任务、它们的依赖项是什么以及需要如何配置它们。

关于java - Gradle深度讲解中的build-by-convention是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21190233/

相关文章:

java - 以阻塞方式轻松在屏幕上打印图像以进行调试

java - java.lang.IllegalStateException:在堆栈上找不到调用#0。记录方法调用无效?

java - 如何使用shadowJar gradle插件而不是maven发布将fat JAR发布到JitPack

Xcode 4 方法大括号 "{"约定

eclipse - 如何在Eclipse中组织 "projects"和 "solutions"?

java - 在 Java 中抛出自定义 NumberFormatException

java - 将 org.bouncycaSTLe.jce.PKCS10CertificationRequest 更新为 org.bouncycaSTLe.pkcs.PKCS10CertificationRequest;

gradle - Gradle中如何获取当前JDK的路径?

arrays - 第一个数组元素是?

java - 读取DOCX文件内容