You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.4 KiB
73 lines
2.4 KiB
|
14 hours ago
|
#!/usr/bin/env python3
|
||
|
|
# -*- coding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
批量更新Java文件注释格式
|
||
|
|
将所有@Author 1024创新实验室相关的注释统一改为 @Author wzh
|
||
|
|
"""
|
||
|
|
|
||
|
|
import os
|
||
|
|
import re
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
def update_java_comments(file_path):
|
||
|
|
"""更新单个Java文件的注释"""
|
||
|
|
try:
|
||
|
|
with open(file_path, 'r', encoding='utf-8') as f:
|
||
|
|
content = f.read()
|
||
|
|
|
||
|
|
# 匹配并替换注释块
|
||
|
|
# 模式1: 多行注释包含 @Author 1024创新实验室...
|
||
|
|
pattern = r'/\*\*\s*\n(\s*\*.*?\n)*?\s*\*\s*@Author\s+1024创新实验室[^\n]*\n(\s*\*.*?\n)*?\s*\*/'
|
||
|
|
|
||
|
|
def replace_comment(match):
|
||
|
|
comment_block = match.group(0)
|
||
|
|
|
||
|
|
# 提取功能说明(第一行)
|
||
|
|
desc_match = re.search(r'/\*\*\s*\n\s*\*\s*(.+?)\s*\n', comment_block)
|
||
|
|
if not desc_match:
|
||
|
|
return comment_block
|
||
|
|
description = desc_match.group(1)
|
||
|
|
|
||
|
|
# 提取@Date
|
||
|
|
date_match = re.search(r'\*\s*@Date\s+(.+?)\s*\n', comment_block)
|
||
|
|
if not date_match:
|
||
|
|
return comment_block
|
||
|
|
date_value = date_match.group(1)
|
||
|
|
|
||
|
|
# 构建新的注释
|
||
|
|
new_comment = f"/**\n * {description}\n *\n * @Date {date_value}\n * @Author wzh\n */"
|
||
|
|
return new_comment
|
||
|
|
|
||
|
|
new_content = re.sub(pattern, replace_comment, content, flags=re.MULTILINE | re.DOTALL)
|
||
|
|
|
||
|
|
if new_content != content:
|
||
|
|
with open(file_path, 'w', encoding='utf-8') as f:
|
||
|
|
f.write(new_content)
|
||
|
|
return True
|
||
|
|
return False
|
||
|
|
except Exception as e:
|
||
|
|
print(f"Error processing {file_path}: {e}")
|
||
|
|
return False
|
||
|
|
|
||
|
|
def main():
|
||
|
|
"""主函数"""
|
||
|
|
base_dir = Path('/Users/wang/wang/space/frameworkSpace/smart-flow-master/smart-flow-api')
|
||
|
|
|
||
|
|
# 查找所有Java文件
|
||
|
|
java_files = list(base_dir.rglob('*.java'))
|
||
|
|
|
||
|
|
updated_count = 0
|
||
|
|
total_count = len(java_files)
|
||
|
|
|
||
|
|
print(f"Found {total_count} Java files")
|
||
|
|
|
||
|
|
for i, java_file in enumerate(java_files, 1):
|
||
|
|
if update_java_comments(java_file):
|
||
|
|
updated_count += 1
|
||
|
|
print(f"[{i}/{total_count}] Updated: {java_file.relative_to(base_dir)}")
|
||
|
|
|
||
|
|
print(f"\nCompleted! Updated {updated_count} files out of {total_count}")
|
||
|
|
|
||
|
|
if __name__ == '__main__':
|
||
|
|
main()
|