mklink 介绍
mklink 作为一个 Gradle 插件,用于构建过程中对一些目录建立软连接。
典型的使用场景:
首先,我们开发、构建时使用了固态硬盘和内存虚拟磁盘。
构件过程中,Build 文件夹往往都是清理后重新生成,Build 下文件数量多、磁盘占用空间大,mklink 可以在 Gradle 执行构建任务时,将
Build 目录在恰当的时机建立在内存盘的软连接,达到 加速写入 和 减少固态磁盘消耗 目的。
当然,目前市面上的固态磁盘,寿命足以满足开发人员的日常开销,构建过程中的磁盘消耗显得不那么重要,但对于持续集成服务器,经 mklink
作用后,每天省下的固态消耗就很可观了,即使搭载普通固态硬盘的机子也能胜任持续构建工作,内存盘也释放出固态磁盘的一部分占用空间,毕竟塞得太满速度也受影响
使用方法:
- 应用插件
Using the plugins DSL:
plugins { id "com.mxstrive.gradle.mklink-plugin" version "1.0.4" }
Using legacy plugin application:
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath "gradle.plugin.com.mxstrive.gradle:mklink:1.0.4" } } apply plugin: "com.mxstrive.gradle.mklink-plugin"
-
配置
mklink {
// 依赖mklink的任务,mklink会在此任务执行前建立软连接,可借助–dry-run去查询确定合适的任务
// next task, which depends on mklink
next = ‘*’
// 需要进行软连接的目录
// Specifies the new symbolic link name
link = “${project.projectDir}\build”
// 软连接目的路径,这里R就是一个内存盘驱动
// Specifies the path (relative or absolute) that the new link refers to.
target = “R:\Build\${project.name}”
// [可选] 当目标的根路径不存在时允许继续构建
// [optional] Allow build continue when the root path of target not exist
allowNoRootPath = true
}
注意:
在应用插件时:
apply plugin: “com.mxstrive.gradle.mklink-
plugin”,在插件顺序上尽量置后,mklink需要在读取到next指示的任务之后,将自己设置为该的任务的依赖
如:插件java会生成Build目录,现在需要将Build进行软连接到其他路径,mklink插件需要配置在java插件之后
apply plugin: 'java' apply plugin: 'com.mxstrive.gradle.mklink-plugin'
执行gradle build –dry-run,可以看到
:mklink SKIPPED :compileJava SKIPPED :processResources SKIPPED :classes SKIPPED :jar SKIPPED :assemble SKIPPED :compileTestJava SKIPPED :processTestResources SKIPPED :testClasses SKIPPED :test SKIPPED :check SKIPPED :build SKIPPED
mklink任务会在compileJava任务之前执行,软连接好Build目录
mklink 官网
https://github.com/moxun1639/mklink
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。