mirror of
https://gitee.com/dromara/MaxKey.git
synced 2026-06-15 17:51:43 +08:00
166 lines
5.2 KiB
Java
166 lines
5.2 KiB
Java
/*
|
|
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top ]
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
package org.maxkey;
|
|
|
|
import java.io.BufferedReader;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.InputStreamReader;
|
|
import java.io.OutputStreamWriter;
|
|
|
|
/**
|
|
* 给java文件批量添加License信息.
|
|
* @author MaxKey Copyright Adder
|
|
*
|
|
*/
|
|
public class Copyright {
|
|
// 存放java文件的文件夹,必须是文件夹
|
|
private static String srcFolder = "D:\\MaxKey\\workspace\\workspace-maxkey\\MaxKey";
|
|
//已添加标识
|
|
private static String copyRightText = "http://www.apache.org/licenses/LICENSE-2.0";
|
|
//扫描目录
|
|
private String folder;
|
|
//版权信息
|
|
private String copyRight;
|
|
//待添加所以文件统计
|
|
private long fileCount = 0;
|
|
//添加的问题就统计
|
|
private long copyRightFileCount = 0;
|
|
private static String lineSeperator = System.getProperty("line.separator");
|
|
private static String encode = "UTF-8";
|
|
|
|
/**
|
|
* Copyright.
|
|
* @param folder java文件夹.
|
|
* @param copyRight 版权内容.
|
|
*/
|
|
public Copyright(String folder, String copyRight) {
|
|
this.folder = folder;
|
|
this.copyRight = copyRight;
|
|
}
|
|
|
|
/**
|
|
* main .
|
|
* @param args String
|
|
* @throws IOException IOException
|
|
*/
|
|
public static void main(String[] args) throws IOException {
|
|
// 从文件读取版权内容
|
|
// 在D盘创建一个copyright.txt文件,把版权内容放进去即可
|
|
String copyright = readCopyrightFromFile(
|
|
Copyright.class.getResource("copyright.txt").getFile());
|
|
new Copyright(srcFolder, copyright).process();
|
|
|
|
|
|
}
|
|
|
|
/**
|
|
* process.
|
|
* @throws IOException not
|
|
*/
|
|
public void process() throws IOException {
|
|
this.addCopyright(new File(folder));
|
|
System.out.println("fileCount " + fileCount);
|
|
System.out.println("copyRightFileCount " + copyRightFileCount);
|
|
}
|
|
|
|
private void addCopyright(File folder) throws IOException {
|
|
File[] files = folder.listFiles();
|
|
|
|
if (files == null || files.length == 0) {
|
|
return;
|
|
}
|
|
|
|
for (File f : files) {
|
|
if (f.isFile()) {
|
|
doAddCopyright(f);
|
|
} else {
|
|
addCopyright(f);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void doAddCopyright(File file) throws IOException {
|
|
String fileName = file.getName();
|
|
boolean isJavaFile = fileName.toLowerCase().endsWith(".java");
|
|
this.fileCount++;
|
|
if (isJavaFile && !isAddCopyrightFile(file.getAbsolutePath())) {
|
|
copyRightFileCount++;
|
|
System.out.println(file.getAbsolutePath());
|
|
try {
|
|
this.doWrite(file);
|
|
} catch (IOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void doWrite(File file) throws IOException {
|
|
StringBuilder javaFileContent = new StringBuilder();
|
|
String line = null;
|
|
// 先添加copyright到文件头
|
|
javaFileContent.append(copyRight).append(lineSeperator);
|
|
// 追加剩余内容
|
|
BufferedReader br = new BufferedReader(
|
|
new InputStreamReader(new FileInputStream(file), encode));
|
|
while ((line = br.readLine()) != null) {
|
|
javaFileContent.append(line).append(lineSeperator);
|
|
}
|
|
|
|
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file), encode);
|
|
writer.write(javaFileContent.toString());
|
|
writer.close();
|
|
br.close();
|
|
}
|
|
|
|
private static String readCopyrightFromFile(String copyFilePath) throws IOException {
|
|
StringBuilder copyright = new StringBuilder();
|
|
|
|
String line = null;
|
|
|
|
BufferedReader br = new BufferedReader(
|
|
new InputStreamReader(new FileInputStream(copyFilePath), encode));
|
|
|
|
while ((line = br.readLine()) != null) {
|
|
copyright.append(line).append(lineSeperator);
|
|
}
|
|
br.close();
|
|
|
|
return copyright.toString();
|
|
}
|
|
|
|
private static boolean isAddCopyrightFile(String filePath) throws IOException {
|
|
boolean isAddCopyright = false;
|
|
String line = null;
|
|
|
|
BufferedReader br = new BufferedReader(
|
|
new InputStreamReader(new FileInputStream(filePath), encode));
|
|
|
|
while ((line = br.readLine()) != null) {
|
|
if (line.indexOf(copyRightText) > -1) {
|
|
isAddCopyright = true;
|
|
break;
|
|
}
|
|
}
|
|
br.close();
|
|
|
|
return isAddCopyright;
|
|
}
|
|
|
|
} |