main
黄海 10 months ago
parent 1b7f0a066c
commit ab762d7929

@ -2,7 +2,6 @@ package Util;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.jfinal.kit.Kv;
import com.jfinal.kit.PathKit;
@ -32,7 +31,7 @@ public class PublishUtil {
* docker tag 19a54d2204aa registry.cn-hangzhou.aliyuncs.com/yltcharge/jdk:21
* docker push registry.cn-hangzhou.aliyuncs.com/yltcharge/jdk:21
*/
public static void publish(String projectName) throws Exception {
public static void publish(String projectName,boolean isStatic,String workingPath,String localLibPath) throws Exception {
System.out.println("正在生成" + projectName + "的镜像...");
//配置文件
String path = PathKit.getRootClassPath() + "\\publishImage.json";
@ -42,23 +41,6 @@ public class PublishUtil {
String user = jo.getString("user");
String pwd = jo.getString("pwd");
int port = jo.getIntValue("port");
JSONArray ja = jo.getJSONArray("project");
String workingPath = null, remotePath, localLibPath = null;
boolean isStatic = false;
for (Object o : ja) {
JSONObject project = (JSONObject) o;
String p = project.getString("projectName");
if (p.equals(projectName)) {
workingPath = project.getString("workingPath");
localLibPath = project.getString("localLibPath");
if (project.getBoolean("isStatic")) {
isStatic = true;
}
break;
}
}
//声明SSH对象
SSHUtil ssh = new SSHUtil(user, pwd, host, port);
@ -71,7 +53,7 @@ public class PublishUtil {
newVersion = newVersion.replace(" ", "").replace("-", "").replace(":", "");
//准备工作
remotePath = "/usr/local/" + projectName + "/";
String remotePath = "/usr/local/" + projectName + "/";
ssh.exec("rm -rf " + remotePath);
ssh.mkdir(remotePath);
@ -223,4 +205,5 @@ public class PublishUtil {
}
return sb.toString();
}
}

@ -1,9 +0,0 @@
import Util.PublishUtil;
public class build_ds_base {
public static void main(String[] args) throws Exception {
//项目名称
String projectName = "ds-base";
PublishUtil.publish(projectName);
}
}

@ -1,9 +0,0 @@
import Util.PublishUtil;
public class build_ds_base_web {
public static void main(String[] args) throws Exception {
//项目名称
String projectName = "ds-base-web";
PublishUtil.publish(projectName);
}
}

@ -1,9 +0,0 @@
import Util.PublishUtil;
public class build_ds_gw {
public static void main(String[] args) throws Exception {
//项目名称
String projectName = "ds-gw";
PublishUtil.publish(projectName);
}
}

@ -1,22 +1,40 @@
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import Util.*;
import cn.hutool.core.io.FileUtil;
public class publishAll {
public static List<ProjectBean> listProject = new ArrayList<>();
public static String basedir;
static {
try {
basedir = new File(System.getProperty("user.dir")).getCanonicalPath();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
/**
* 1JAVA2WEB
*
* @return
* @throws IOException
*/
public static int getProjectAttribute(int id) {
for (ProjectBean projectBean : listProject) {
if(projectBean.getId() == id){
//String devprojectBean.getDevProjectName()
break;
if (projectBean.getId() == id) {
String path = basedir + "\\" + projectBean.getDevProjectName();
//这个path目录下有没有src这样的子目录如果有则判定为JAVA项目否则为WEB项目
if (new File(path + "\\src").exists()) {
return 1;
} else {
return 2;
}
}
}
return 0;
@ -25,12 +43,12 @@ public class publishAll {
/**
*
*/
public static void userSelectProject() {
public static int userSelectProject() {
Scanner scanner = new Scanner(System.in); // 创建Scanner对象来读取控制台输入
System.out.println("请选择您本次要发布的项目编号:");
for (ProjectBean projectBean : listProject) {
System.out.print(projectBean.getId() + ":" + projectBean.getDevProjectName()+" ");
System.out.print(projectBean.getId() + ":" + projectBean.getDevProjectName() + " ");
}
System.out.println();
int choice = scanner.nextInt(); // 读取用户输入的整数
@ -42,9 +60,10 @@ public class publishAll {
}
}
scanner.close(); // 关闭Scanner对象
return choice;
}
public static void main(String[] args) throws IOException {
public static void main(String[] args) throws Exception {
//1、探测当前目录下有哪些以ds开头的目录这些目录都是待发布的项目
List<String> projectNames = PublishUtil.getProjectNames();
@ -62,7 +81,28 @@ public class publishAll {
listProject.add(pb);
}
//让用户选择要发布的项目
userSelectProject();
int choice = userSelectProject();
//这个项目是什么类型?
int projectAttribute = getProjectAttribute(choice);
String workingPath = null, projectName = null, localLibPath = null;
boolean isStatic = false;
for (ProjectBean projectBean : listProject) {
if (projectBean.getId() == choice) {
workingPath = basedir + "\\" + projectBean.getDevProjectName();
projectName = projectBean.getPublishProjectName();
if (FileUtil.exist(workingPath + "\\lib")) {
localLibPath = workingPath + "\\lib";
}
break;
}
}
if (projectAttribute == 1) {
System.out.println("JAVA项目");
} else {
System.out.println("WEB项目");
isStatic = true;
}
//开始打包
PublishUtil.publish(projectName, isStatic, workingPath, localLibPath);
}
}

@ -2,25 +2,5 @@
"host": "10.10.14.212",
"user": "root",
"pwd": "dsideal",
"port": 22,
"project": [
{
"projectName": "ds-gw",
"workingPath": "D:/dsWork/dsProject/dsGw/",
"localLibPath": "D:/dsWork/dsProject/dsGw/lib/",
"isStatic": false
},
{
"projectName": "ds-base",
"workingPath": "D:/dsWork/dsProject/dsBase/",
"localLibPath": "D:/dsWork/dsProject/dsBase/lib/",
"isStatic": false
},
{
"projectName": "ds-base-web",
"workingPath": "D:/dsWork/dsProject/dsBaseWeb/",
"localLibPath": "",
"isStatic": true
}
]
"port": 22
}

@ -2,25 +2,5 @@
"host": "10.10.14.212",
"user": "root",
"pwd": "dsideal",
"port": 22,
"project": [
{
"projectName": "ds-gw",
"workingPath": "D:/dsWork/dsProject/dsGw/",
"localLibPath": "D:/dsWork/dsProject/dsGw/lib/",
"isStatic": false
},
{
"projectName": "ds-base",
"workingPath": "D:/dsWork/dsProject/dsBase/",
"localLibPath": "D:/dsWork/dsProject/dsBase/lib/",
"isStatic": false
},
{
"projectName": "ds-base-web",
"workingPath": "D:/dsWork/dsProject/dsBaseWeb/",
"localLibPath": "",
"isStatic": true
}
]
"port": 22
}

@ -271,18 +271,18 @@ public class RouterHandler extends Handler {
//3、处理POST请求
if (req.getMethod().equals("POST")) {
RequestBody body = createRequestBody(req);
Request request;
Request.Builder builder;
if (queryString != null) {
request = new Request.Builder().url(FORWARD_URL + "?" + queryString)
.addHeader("Authorization", req.getHeader("Authorization"))
.addHeader("Accept", "application/json;odata=verbose")
.post(body).build();
builder = new Request.Builder().url(FORWARD_URL + "?" + queryString);
} else {
request = new Request.Builder().url(FORWARD_URL)
.addHeader("Authorization", req.getHeader("Authorization"))
.addHeader("Accept", "application/json;odata=verbose")
.post(body).build();
builder = new Request.Builder().url(FORWARD_URL);
}
if (!StrKit.isBlank(req.getHeader("Authorization"))) {
builder.addHeader("Authorization", req.getHeader("Authorization"));
builder.addHeader("Accept", "application/json;odata=verbose");
}
builder.post(body);
Request request = builder.build();
try {
executeRequest(request, res);
isHandled[0] = true;//停止filter

Loading…
Cancel
Save