[ gradle ] 理解task project 和 dependency management

1. CLI创建一个gradle项目

mkdir project

git init

git status

echo '#description' > README.md写描述文件

git add .

git diff --cached 查看stating和history的区别

git commit -m "chore: explain "

gradle init#选择project类型: application, 选择语言:java, 选择是否多个子项目:no, 选择DSL语言 Groovy; 选择测试框架: Jupiter ; projectname, source package: 修改为自己的项目包名 com....;

结束后查看 brew install tree , tree . 查看文件结构,生成app, appTest

cd app

./gradlew app:dependencies# 查看依赖信息

./gradlew app:runor :app:run

2. Shortcut

Shift Command o#通过文件名查找文件

Command 1#去左上角的主菜单,及project的目录部分

Command 4#去下方run的窗口

Shift Command '#maximize此窗口

Option Command L#format代码


操作: Shift Command up/down # 移动一行上下

导航: Ctrl Shift up/down # 下一个方法

Ctrl + T # refactor this!!!! delegate, IPO etc.

Ctrl + O # override a method

复制一行,任意位置直接Command+ C

Ctrl+ Option+ O # 优化import

Shift + Command + F # 用关键字在所有文件中寻找


3. Gradle and Wrapper

重要概念: task和project

3.1 build tool:

gradle wrapper 包裹gradle版本号, 指定要下载的gradle版本,位置: gradle/wrapper/gradle-wrapper.properties

文件中: 下载地址: distributionBase 和 distributionPath 的拼接

第一个默认为 ~/

3.2 查看当前项目使用的gradle版本

: 1. 去配置文件 2. gradlew -v

3. 3 改变当前项目中的gradle版本

: 修改文件, 命令, build.gradle配置

3. 4 Task

gradle 后面的命令可以成为task, 一个task是指一个最小的动作, 可以是构建, 打包, 初始化等

./gradlew clean #清理构建产物
./gradlewbuild #构建
./gradlew test #运行测试
./gradlew tasks #查看所有的task
./gradlew help --task taskName #查看某个task的帮助信息

每次的构建产物都放在build文件夹下

java经典流程:

如果有多个task相互依赖, 使用链式执行:

./gradlew build --dry-run # 可以用于查看此task所依赖的其他task(干跑)

如果只修改了配置信息, 没有修改代码,不想重新运行test task, 可以使用:

来排除test任务, 如果有多个需要排除, 可以使用 -x taskname1 -x taskname2 跟在后面。

3. 5 Project

如果是一个multi-project, 可以在每个sub-project下面放一个build.gradle,每一个sub项目中的gradle会继承总的, 放在父目录下的gradle文件。 settings.gradle文件也很重要(有子项目的名字)

此时, 当在父目录下运行: ./gradlew run, 所有的sub项目都会运行

如果只想运行其中一个: .gradlew projects可以查看multi项目所有的项目路径,

./gradlew help --task run可以查看run这个task所包含的所有可执行命令(把每一个sub-project的run的path打印出来)

./gradlew :app:run第一个:可以省略 ---->. ./gradlew app:run

新建一个sub-project: mkdir, create一个build.gradle在dir中, 在settings.gradle中添加子项目名字。

4. dependency management

4.1 坐标

引用坐标: coordinates

commons-cli:commons-cli:1.4规则: group(或者公司域名):artifact(项目子模块/项目名):version

eg:

4.2 dependency的关键字:

api: 可以调用当前库和当前库所依赖的裤的方法

implementation: 只能使用此包的方法, 不能调用这个包所依赖的其他库里面的方法

testImplementation: 测试时才可以用, 并只能调用此包的方法, 不能调用这个包所依赖的包

runtime/compile etc.

4.3 dependency conflict:

  1. 统一版本管理 config.gradle

  2. 某个包所依赖的包和我们自己项目中使用的包版本冲突, 可以使用exclude去重。

  1. 强制使用某版本依赖
posted @ 2022-08-26 10:31  Roy2048  阅读(225)  评论(0)    收藏  举报