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目录
注: F和G盘为两个不同的磁盘 文件夹指向(软链接) F:\>mklink /j "F:\a" "G:\b" 为 F:\a <<===>> G:\b 创建的联接 1,所有读取写入a文件夹的东东,都在b中, 创建时a文件夹自动生成,如果a存在无法创建 2,在使用中如果b文件夹不存在会发生读取写入错误 3,F 和 G为两块不同的磁盘 文件夹指向(符号链接) F:\>mklink /d "F:\a" "
Linux上的符号链接相信很多小伙伴都很熟悉,但Windows上的符号链接很少出现。 Windows系统上的所有符号链接都称为“NTFS符号链接”,它是一种指向NTFS文件系统中另一个对象的对象,称为“目标”,其作用是在NTFS文件系统中创建文件或目录的链接。 符号链接的设计目的是为了提高兼容性,首次出现在Windows Vista中,由于较晚的更新时间和当时已经存在“快捷方式”,所以用户并不太了
mklink 命令是在 Windows 操作系统中用来建立软链接 (又称符号链接) 的命令。软链接是一种特殊的文件,它实际上是一个指向另一个文件或目录的快捷方式。当你访问软链接时,系统会自动转到软链接指向的文件或目录。 使用 mklink 命令建立软链接的格式如下: mklink[[/D] | [/H] | [/J]] Link Target
第一步 将C盘C:\Users\JackieZheng\.vscode文件夹剪切到D:\vscode中去 第二步 以管理员身份运行cmd,执行如下命令,建立符号链接在管理员身份下的cmd中输入如下命令 mklink /D "C:\Users\JackieZheng\.vscode" "D:\vscode\.vscode" 两个双引号之间有一个空格 同样对于较大的软件的迁移就可以通过mklink建立
使用mklink连接文件夹的目的: 扩展硬盘空间,方便查看,组织文件和文件夹 命令: mklink /D Link Target Target:实际占用硬盘空间的文件夹。 Link:指向Target的快捷方式,不占用任何硬盘空间(其实是占用的,实际占用4096 bytes,也就是一个文件夹在硬盘上的大小)。 Target和Link可以在不同的硬盘上。 Target和Link所在硬盘都需要为NTFS
mklink命令 mklink是windows系统下创建符号链接和硬链接的命令工具,它是一个很好的解决文件系统问题的工具。使用它需要管理员权限。 首先,先来介绍下mklink这个命令: mklink 创建符号链接。 mklink [[/D] | [/H] | [/J]] Link Target /D 创建目录符号链接。默认为文件符号链接。 /H 创建硬链接而非符号链接。 /J 创建目录联接。 Li
Windows mklink命令 软链接目录共享 Mklink命令详细介绍 Windows 7下的mklink命令通过指定参数可以建立出不同形式的文件或目录链接,分为硬链接(hard link)、符号链接(symbolic link)和软链接(联接)(junction)三种。 1.符号链接(symbolic link) 建立一个软链接相当于建立一个文件(或目录),这个文件(或目录)用于指
一.目标:让已经安装在C盘下的Google浏览器虚拟化,避免占用C盘空间(虽然在C盘下还存在它的身影),但是实际安装的位置已经被我们移到了其他盘如D盘下。 二.简要步骤: 打开左下角的开始搜索“cmd”或命令提示符,然后右键管理员运行。 记住GoogleChrome在c盘中的安装路径,把安装在C盘的Google目录,复制一份到其他盘比如D:盘的其他目录下,复制成功后,把c盘的整个Google目录删
命令如下: 1.复制User目录到D盘: robocopy “C:\Users” “D:\Users” /E /COPYALL /XJ 2.强制删除User目录: rmdir “C:\Users” /S /Q 3.创建C盘下的User的软件链接,链接到D盘User目录:mklink /J “C:\Users” “D:\Users” 重装系统后只需重复第二条和第三条命令及可 有了这条命令就再也不怕重
问题内容: 我正在尝试在Android的SD卡上建立一个名为“ images”的目录。这是我的代码,但是不起作用?谁能给我一些建议? 问题答案: 更新: 自Android 10,11 Storage更新以来 ,Google已通过标准编程语言文件操作来限制对Storage的访问。 对于仅针对Android 10(API 29)及更高版本的应用程序,您需要在Android清单文件中声明“ reques
建立在 Mesos 上的软件项目 常驻服务 Aurora 是一个运行在 Mesos之上的服务调度程序。它能充分利用了 Mesos 的可扩展性、容错性以及资源隔离,让你能够运行常驻服务。 Marathon 是建立在 Mesos 上的私有 PaaS平台。它能自动处理硬件或者软件故障,并确保每个应用程序都"永远在线"。 Singularity 是一个调度 Mesos 任务的任务调度器( HTTP API
我的轨道环境是 轨道: 3.2.14, 红宝石: 1.9.3, 系统:ubuntu mysql:5.5.32-0ubuntu0.12.04.1 我创建了一个mysql数据库,为了测试这个数据库,我从我在windows中的mysql workbench连接它。所以,我想展示一下,我在ubuntu中的mysql数据库运行正常 但是,当我在浏览器中运行网站时,我得到错误:active record::c
SQLAlchemy 1.4 / 2.0 Tutorial 此页是 SQLAlchemy 1.4/2.0教程 . 上一页: SQLAlchemy 1.4/2.0教程 |下一步: |next| 建立连接-引擎 任何SQLAlchemy应用程序的开始都是一个名为 Engine . 此对象充当连接到特定数据库的中心源,提供工厂和称为 connection pool 对于这些数据库连接。引擎通常是一个只为
设备串口和OBLOQ串口在长时间不进行数据通信后可能会断开连接,通过这条指令可以让设备和OBLOQ之间保持一定频率的数据交换。 请求方式: "|1|3|2000|\r" 或者 "|1|3|-2|\r" 参数: 2000 设置心跳数据发送频率,单位:毫秒,2000表示2秒钟OBLOQ向通信的的设备发送一次数据 -2 参数为负数表示OBLOQ停止发送数据 返回值: "|1|3|\r" Arduino样
问题内容: 我有几个线程在集群系统上从Python并行运行。每个python线程输出到一个目录。每个脚本在输出前检查 mydir是否 存在,如果不存在,则创建它: 但这会产生错误: 我怀疑这可能是由于种族情况造成的,其中一个工作在另一个工作到达之前创建了 目录 。这可能吗?如果是这样,如何避免该错误? 我不确定这是否是竞争条件,所以想知道Python中的其他问题是否会导致这种奇怪的错误。 问题答案
本文向大家介绍Rust 建立项目,包括了Rust 建立项目的使用技巧和注意事项,需要的朋友参考一下 示例 除错 发布 使用--release标记进行构建可以实现某些编译器优化,而这些优化在构建调试版本时不会完成。这使代码运行得更快,但也使编译时间更长一些。为了获得最佳性能,发行版本就绪后应使用此命令。
问题内容: 在受到谴责之前,请阻止已建立的异常连接。谁可以给我解决方案 问题答案: 那是因为必须在建立连接之前调用该函数。检查此链接 http://developer.android.com/reference/java/net/HttpURLConnection.html#setRequestMethod(java.lang.String) 因此最好在openConnection()之前调用它。