NoteDeep
gradle 的官方文档地址
历史版本: https://gradle.org/releases/
Project : https://docs.gradle.org/6.8.3/dsl/org.gradle.api.Project.html
学习如何写 gradle: https://docs.gradle.org/6.8.3/userguide/tutorial_using_tasks.html
plugin: https://docs.gradle.org/6.8.3/userguide/plugins.html


build.gradle 文件和 Project 是一对一的关系, 可以把需要构建的应用程序或者 library 组件看成一个 Project

plugin 本质上就是复用一些封装好的 build.gradle 片段
一般情况下,project 的 task 是由 plugin 提供了,不需要你自己去写 task。

Maven 是什么
Maven is a build automation tool used primarily for Java projects. Maven can also be used to build and manage projects written in C#, Ruby, Scala, and other languages.

Maven 中的 SNAPSHOT 版本和正式版本
在Nexus仓库中,一个仓库一般分为public(Release)仓和SNAPSHOT仓,前者存放正式版本,后者存放快照版本。如果在项目配置文件中(无论是build.gradle还是pom.xml)指定的版本号带有’-SNAPSHOT’后缀,比如版本号为’Junit-4.10-SNAPSHOT’,那么打出的包就是一个快照版本。
快照版本和正式版本的主要区别在于,本地获取这些依赖的机制有所不同。
依赖正式版本,会优先从本地 rep 获取依赖。但是如果这个依赖还在开发阶段,那么为了获取到最新版本,开发时就要不断改变版本号。
依赖快照版本,那么会优先从远程 rep 获取。在依赖的库还在开发阶段,会频繁变更时,使用快照版本就非常方便。


intellij ide 配合 gradle 使用

有时程序可以正常运行,但是编辑器标红找不到文件,说明仅仅是编辑器的问题
比如: 指定 protobuf 插件将 pb java 文件生成到下面的目录时。
generatedFilesBaseDir = "$projectDir/src/generated"
由于 ide 认为当前 module 的 source code dir 不包含这个目录,所以引用时会被标红。
解决方案一 idea 插件:
apply plugin: 'idea'
idea { module { sourceDirs += file("src/generated/main/java") sourceDirs += file("src/generated/main/grpc") generatedSourceDirs += file("src/generated/main/java") generatedSourceDirs += file("src/generated/main/grpc") } }
解决方案二,指定 sourceset
sourceSets { main { java { srcDirs = ['src/generated', 'src/main/java'] } } }


评论列表

    intellij ide 配合 gradle 使用