Browse Source

GitUtil 修改

root 2 năm trước cách đây
mục cha
commit
9106697f90

+ 1 - 1
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/service/ProjectService.java

@@ -371,7 +371,7 @@ public class ProjectService {
                     String gitUrl = algorithmPO.getGitUrl().replace(gitConfiguration.getName(), gitConfiguration.getUrl());
                     String gitUserName = algorithmPO.getGitUserName();
                     String gitPassword = algorithmPO.getGitPassword();
-                    GitUtil.clone(gitUrl, gitUserName, gitPassword, algorithmDirectoryLinuxTempPath); // 下载算法文件到目录
+                    GitUtil.clone(gitUrl, gitUserName, gitPassword, algorithmDirectoryLinuxTempPath, true); // 下载算法文件到目录
                     for (String filename : Objects.requireNonNull(new File(algorithmDirectoryLinuxTempPath).list())) {
                         if (filename.endsWith(".tar")) {
                             algorithmTarLinuxTempPath = algorithmDirectoryLinuxTempPath + filename;

+ 29 - 12
simulation-resource-scheduler/src/main/java/com/css/simulation/resource/scheduler/util/GitUtil.java

@@ -19,26 +19,43 @@ import java.io.File;
 public class GitUtil {
 
     /**
-     * @param url                 git 地址
-     * @param username            用户名
-     * @param password            密码
-     * @param localEmptyDirectory 空目录
+     * @param url           git 地址
+     * @param username      用户名
+     * @param password      密码
+     * @param directoryPath 空目录
+     * @param cover         如果目录内有文件,是否覆盖
      */
     @SneakyThrows
-    public static void clone(String url, String username, String password, String localEmptyDirectory) {
-        File localEmptyDirectoryFile = new File(localEmptyDirectory);
-        if (localEmptyDirectoryFile.exists()) {
-            File[] files = localEmptyDirectoryFile.listFiles();
-            if (files == null || files.length > 0) {
-                throw new RuntimeException("GitUtil--clone 目标下载目录不是空目录。");
+    @SuppressWarnings("all")
+    public static void clone(String url, String username, String password, String directoryPath, boolean cover) {
+        File directoryFile = new File(directoryPath);
+        if (directoryFile.exists()) {
+            File[] files = directoryFile.listFiles();
+            if (files == null || files.length == 0) {
+                clone(url, username, password, directoryFile);
+            } else {
+                if (cover) {
+                    for (File file : files) {
+                        file.delete();
+                    }
+                    clone(url, username, password, directoryFile);
+                } else {
+                    throw new RuntimeException("GitUtil--clone 目标下载目录不是空目录。");
+                }
             }
         } else {
-            localEmptyDirectoryFile.mkdirs();
+            directoryFile.mkdirs();
+            clone(url, username, password, directoryFile);
         }
+
+    }
+
+    @SneakyThrows
+    private static void clone(String url, String username, String password, File directoryFile) {
         Git git = Git.cloneRepository()
                 .setURI(url)
                 .setCredentialsProvider(new UsernamePasswordCredentialsProvider(username, password))
-                .setDirectory(localEmptyDirectoryFile)
+                .setDirectory(directoryFile)
                 .call();
     }
 }