当前位置: 首页 > news >正文

学点Java_Day6_基于Copyright和Actions On Save的IDEA自动更新文件最后编辑时间的方法研究(IDEA2021.2及以上)

0 版本要求

  IDEA2021.2及以上,我用的IntelliJ IDEA 2023.2.4

1 操作

1.1 Copyright设置

    ① Ctrl+Alt+S打开设置(Settings)→ Editor → Copyright
在这里插入图片描述
  ② Copyright → Copyright Profiles → + → 取名 → OK
在这里插入图片描述
  ③ 复制下面内容到框里,然后点Apply

适度编码益脑,沉迷编码伤身,合理安排时间,享受快乐生活。
Copyright @$username
Created by $username
Created&Used date: $originalComment.match("Created&Used date: (\d+\/\d+\/\d+\ [\u4e00-\u9fa5]+\d+\:\d+)", 1,  " ~ ", $today.format("$today"))$today
Modified date: $file.lastModified

在这里插入图片描述
  ④ 再次点击Copyright → Default project copyright:设置为刚刚添加的模板 → + 选择All(自己根据情况)
在这里插入图片描述
在这里插入图片描述
  ⑤ 测试,随便一个文件Alt+Insert,生成版权声明(右键 → Generate也可以)
在这里插入图片描述
在这里插入图片描述
   等一分钟,再次尝试生成版权声明:
在这里插入图片描述

1.2 Actions On Save设置

  与保存动作绑定,实现每次保存自动更新
  ① Ctrl+Alt+S打开设置(Settings)→ Tools → Actions On Save
在这里插入图片描述
  ② 勾选Update copyright notice → Apply
在这里插入图片描述

2 最终测试

在这里插入图片描述

3 原理

  有空再说

参考

IDEA的官方文档
很好的Copyright教程,给出了很多有用的参数
正则表达式1
正则表达式2
正则表达式3
正则表达式4
正则表达式5

基于FileHeader的自动添加信息(无法自动更新最后时间)

java的idea,新建Java类时,自动在文件头中添加作者名和日期时间等信息

其他大佬解决方案

Windows环境下IDEA等JetBrains系列软件自动更新文件最后编辑时间(update last modify time)方案

-------------------------草稿-------------------------------------
//使用前提:非正则部分,要一模一样
//原本内容是根据正则表达式截取的部分
//函数说明 原本内容(正则表达式截取)与传入内容匹配
//如果匹配 不输出 失配 从正则表达式截取之前的部分 截断 再输出 "原本内容"和-
//如果截取部分后边有内容 会导致下次截取不到东西(不符合截取要求) 对比失败 重新生成版权
//match("Copyright \(c\) (\d+\/\d+\/\d+) 下午", 1, "-", $today.format("$today"))

相关文章:

  • 联想笔记本的声音键没有反应怎么办?
  • Selenium 学习(0.21)——软件测试之单元测试
  • C语言案例01, 输入两个整数,获得两个数加减乘除的值,持续更新中~
  • 【Spring Cloud】微服务通信概述
  • 【C语言】结构体内存对齐问题
  • <JavaEE> 了解网络层协议 -- IP协议
  • 从零到一构建短链接系统(八)
  • 通过jsDelivr实现Github的图床CDN加速
  • Rust常用库之序列化和反序列化库serde(使用 Serde 处理json)
  • Visual Studio 2022下配置 OpenMP 多线程编程环境与运行
  • java.lang.ClassNotFoundException: kotlin.jvm.internal.Intrinsics
  • 计算机网络相关
  • 实战打靶集锦-027-SoSimple1
  • 【Redis】Redis常见原理和数据结构
  • AI开源概览及工具使用
  • ES学习笔记(12)--Symbol
  • jquery ajax学习笔记
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • MySQL数据库运维之数据恢复
  • Vue全家桶实现一个Web App
  • WePY 在小程序性能调优上做出的探究
  • 阿里研究院入选中国企业智库系统影响力榜
  • 工作手记之html2canvas使用概述
  • 欢迎参加第二届中国游戏开发者大会
  • 机器学习中为什么要做归一化normalization
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 老板让我十分钟上手nx-admin
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 前端性能优化——回流与重绘
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • 正则表达式-基础知识Review
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (done) NLP “bag-of-words“ 方法 (带有二元分类和多元分类两个例子)词袋模型、BoW
  • (Python第六天)文件处理
  • (第61天)多租户架构(CDB/PDB)
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (轉貼) UML中文FAQ (OO) (UML)
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET Core 2.1路线图
  • .net MySql
  • .Net Remoting(分离服务程序实现) - Part.3
  • .Net Web窗口页属性
  • .net 发送邮件
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 在 64 位进程中读取 32 位进程重定向后的注册表
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @JsonFormat与@DateTimeFormat注解的使用
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [AUTOSAR][诊断管理][ECU][$37] 请求退出传输。终止数据传输的(上传/下载)
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)