feat():下载OSS至本地编译class

yuan
yuan 2024-09-01 10:23:03 +08:00
parent ef11e6025f
commit 09dd035df1
3 changed files with 27 additions and 21 deletions

View File

@ -37,10 +37,8 @@ public class OSSFileCompile{
// } // }
public static Result<Object> compile(String source,String extLib){ public static Result<Object> compile(String source,String extLib){
// 获取系统Java编译器
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
// 调用编译器的compile方法编译源代码可以添加编译选项和输出目录等
int result = compiler.run(null, null, null, source); int result = compiler.run(null, null, null, source);
// 检查编译结果 // 检查编译结果

View File

@ -1,11 +1,14 @@
package com.muyu.load; package com.muyu.load;
import com.aliyun.oss.OSSClient; import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.GetObjectRequest;
import com.aliyun.oss.model.OSSObject; import com.aliyun.oss.model.OSSObject;
import com.aliyun.oss.model.ObjectMetadata;
import com.muyu.common.core.domain.Result; import com.muyu.common.core.domain.Result;
import com.muyu.compile.OSSFileCompile; import com.muyu.compile.OSSFileCompile;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.util.Map; import java.util.Map;
@ -27,7 +30,8 @@ public class OSSFileLoad {
private static final String accessKeySecret = "5ejb4qdgukfD1FdM181kdeAkSuURo7"; private static final String accessKeySecret = "5ejb4qdgukfD1FdM181kdeAkSuURo7";
// bucket // bucket
private static final String bucketName = "java-web-generating-class"; private static final String bucketName = "java-web-generating-class";
// 本地文件下载路径
private static final String localpath = "C:\\Users\\13636\\Desktop\\FileLoad\\";
public static Result<Object> streamingDownload(String fileName) throws IOException { public static Result<Object> streamingDownload(String fileName) throws IOException {
String source = null; String source = null;
// 创建 OSSClient 实例 // 创建 OSSClient 实例
@ -38,31 +42,26 @@ public class OSSFileLoad {
System.out.println("bucket不存在"); System.out.println("bucket不存在");
return Result.error("bucket不存在"); return Result.error("bucket不存在");
} }
// 判断 要下载的文件 是否存在
Boolean flag_file = ossClient.doesObjectExist(bucketName, fileName); Boolean flag_file = ossClient.doesObjectExist(bucketName, fileName);
if (!flag_file) { if (!flag_file) {
System.out.println("预下载文件不存在"); System.out.println("预下载文件不存在");
return Result.error("预下载文件不存在"); return Result.error("预下载文件不存在");
} }
// ossObject包含文件所在的存储空间名称、文件名称、文件元信息以及一个输入流 ossClient.getObject(new GetObjectRequest(bucketName, fileName), new File(localpath));
OSSObject ossObject = ossClient.getObject(bucketName, fileName); // OSSObject ossObject = ossClient.getObject(bucketName, fileName);
// 按行读取文件内容 // BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent())); // while(true){
// String line = reader.readLine();
while(true){ // source += line;
String line = reader.readLine(); // if (line == null) break;
source += line; // }
if (line == null) break; // System.out.println(source);
} // System.out.println("读取成功");
System.out.println(source); // reader.close();
System.out.println("读取成功");
// 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作
reader.close();
// 关闭oss
ossClient.shutdown(); ossClient.shutdown();
// Map<String, byte[]> compile = OSSFileCompile.compile(fileName, source, "target/"); // Map<String, byte[]> compile = OSSFileCompile.compile(fileName, source, "target/");
Result<Object> compile = OSSFileCompile.compile(source, "target/"); Result<Object> compile = OSSFileCompile.compile(localpath+fileName, null);
System.out.println(compile.getData()); System.out.println(compile.getData());
return Result.success(source); return Result.success(source);
} }

View File

@ -75,9 +75,18 @@ public class RuleVersionServiceImpl
@Override @Override
public RuleVersion generatedCode(RuleVersion ruleVersion) { public RuleVersion generatedCode(RuleVersion ruleVersion) {
RuleData ruleData = ruleDataService.getById(ruleVersion.getRuleId()); RuleData ruleData = ruleDataService.getById(ruleVersion.getRuleId());
ruleVersion.setRuleVersionType("generate"+"_"+ruleData.getRuleCoding()+"_"+ruleVersion.getRuleVersionCode()); ruleVersion.setRuleVersionType(getClassName("generate"+"_"+ruleData.getRuleCoding()+"_"+ruleVersion.getRuleVersionCode()));
ruleVersion.setRuleVersionText(GenerateConstant.generateConstant(ruleData,ruleVersion)); ruleVersion.setRuleVersionText(GenerateConstant.generateConstant(ruleData,ruleVersion));
return ruleVersion; return ruleVersion;
} }
public static String getClassName(String versionCode){
String[] splits = versionCode.split("_");
String className="";
for (String split : splits) {
className += split.substring(0,1).toUpperCase()+split.substring(1);
}
return className;
}
} }