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

邢台企业网站制作建设网站建设职位名称

邢台企业网站制作建设,网站建设职位名称,吉林网络推广公司,如何做律所网站需求 应公司质量部要求,需要对代码做静态检查。质量部要求,源码文件必须在起始行起设置一些注释,然而项目已经开发了一年之久,且没有维护这个注释。 此时,面对好几千个源码文件,我们如何快速添加相应的注…

需求

应公司质量部要求,需要对代码做静态检查。质量部要求,源码文件必须在起始行起设置一些注释,然而项目已经开发了一年之久,且没有维护这个注释。

此时,面对好几千个源码文件,我们如何快速添加相应的注释呢?

对,自己写一个程序来实现。

分析

假设注释模板为

/** Model: <模块>* Description:  <描述> * Author: <作者>* Finished: <时间>*/

只要获得 <模块><描述><作者><时间> 的值,既可以通过文档读写完成给源码添加注释的需求。

代码

根据分析,实现代码如下:

package com.xzbd.jrx;import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.List;import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RuntimeUtil;
import cn.hutool.core.util.StrUtil;public class AddFileHeaderComment {private static String projectPath = "D:\\workspace\\builder_backend";public static void main(String[] args) {addFileHeaderComments(projectPath);}public static void addFileHeaderComments(String projectPath) {try {Files.walkFileTree(Paths.get(projectPath), new SimpleFileVisitor<Path>() {@Overridepublic FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {String filePath = file.toString();// 仅对Java文件进行if (filePath.endsWith(".java")) {addCommentToFile(file.toFile());}return FileVisitResult.CONTINUE;}});} catch (IOException e) {e.printStackTrace();}}public static void addCommentToFile(File file) {try {String packageName = getPackageName(file);String className = getClassName(file);String author = getAuthor(file);String date = getFileModifiedDate(file);String comment = String.format("/*%n" +" * Model: %s%n" +" * Description: %s%n" +" * Author: %s%n" +" * Finished: %s%n" +" */%n%n", packageName, className, author, date);String originalContent = Files.readString(file.toPath());String newContent = comment + originalContent;Files.write(file.toPath(), newContent.getBytes("utf-8"));} catch (IOException e) {e.printStackTrace();}}public static String getPackageName(File file) throws IOException {String absolutePath = file.getAbsolutePath();String sep = "com\\xzbd\\";String packageName = StrUtil.subAfter(absolutePath, sep, false);packageName = StrUtil.subBefore(packageName, File.separator, false);// 可以使用 file.getParent().getFileName(); 根据需要调整return packageName;}public static String getClassName(File file) {return file.getName().replaceFirst("[.][^.]+$", "");}public static String getAuthor(File file) {String absolutePath = file.getAbsolutePath();String cmd = String.format("git --git-dir=%s\\.git --work-tree=%s log --reverse %s", projectPath, projectPath,absolutePath);List<String> execForLines = RuntimeUtil.execForLines(Charset.forName("utf-8"), cmd);for (String line : execForLines) {String sep = "Author:";if (StrUtil.startWith(line, sep)) {String useranme = StrUtil.subAfter(line, sep, false);return useranme;}}return "<Your Name>";}public static String getFileModifiedDate(File file) {String absolutePath = file.getAbsolutePath();String cmd = String.format("git --git-dir=%s\\.git --work-tree=%s log --reverse %s", projectPath, projectPath,absolutePath);List<String> execForLines = RuntimeUtil.execForLines(Charset.forName("utf-8"), cmd);for (String line : execForLines) {String sep = "Date:";if (StrUtil.startWith(line, sep)) {String dateStr = StrUtil.subAfter(line, sep, false);Date data = new Date(dateStr);DateTimeFormatter dateFmt = DateTimeFormatter.ofPattern("yyyy年MM月dd日");String date = DateUtil.format(data, dateFmt);return date;}}DateTimeFormatter dateFmt = DateTimeFormatter.ofPattern("yyyy年MM月dd日");String date = DateUtil.format(new Date(), dateFmt);return date;}
}

执行后的效果
在这里插入图片描述

总结

文中代码程序实现了对java文件添加注释的功能,其中用到了 hutool-all 工具,其 pom 如下:

		<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.16</version></dependency>

另外,程序也使用了 git log 查看文件的日志信息,以获取文件正确的作者,和完成时间。该 git 命令详解,参考文章【Git】任何位置查看git日志

http://www.yayakq.cn/news/409535/

相关文章:

  • 网站线框图怎么做营销专业网站
  • 网站设计和建设ppt网站开发业务ppt
  • 软件公司logo图标大全如何优化网站 提高排名
  • 自己做的网站403昆明本地网站
  • 网站怎么申请官网常德企业网站建设
  • 网站移动端网站建设销售培训
  • 成都游戏网站建设dede网站后台导入文档
  • 在线购物网站开发针对大学生推广引流
  • 网站后期增加产品做预算兼职的网站
  • 可以看设计的网站有哪些wordpress导购插件
  • 微信免费做邀请函模版网站影视制作宣传片公司
  • 做外贸网站效果图学校网站建设汇报
  • 贸易网站怎么做易营宝自助建站系统
  • 安微省建设厅网站潍坊网站制作厂家
  • 襄阳网站建设找下拉哥科技神州行套餐
  • 网站做简介微信电商小程序怎么做
  • 网站默认数据库地址企业信息查询网官网
  • 英文写作网站怎样把自己的网站进行推广
  • 农产品网站如何做地推网站 图标 gif
  • 网站建设捌金手指花总十二人人装修网
  • 网站备案密码能改吗成都兼职建设网站
  • 做网站ps能用美图秀秀么制作一个网站的需要多少钱
  • 织梦做的网站打开慢东莞培训机构
  • 宝塔面板做网站广东深圳网络科技有限公司
  • 汽车网站建设的基本功能重庆自助建站模板
  • 做电影网站模板教学溧阳网站设计
  • 网站专题页怎么做鄂尔多斯市建设厅网站
  • 网站做tips国外企业网页设计
  • 做任务悬赏网站有什么网站可以接淘宝设计单做
  • 卖鞋做哪个网站好邮件网站怎么做