TabooLib/src/main/scala/io/izzel/taboolib/module/dependency/TDependency.java

63 lines
2.5 KiB
Java
Raw Normal View History

package io.izzel.taboolib.module.dependency;
import io.izzel.taboolib.TabooLib;
import io.izzel.taboolib.util.Files;
2019-07-11 08:59:18 +00:00
import io.izzel.taboolib.util.Strings;
import java.io.File;
import java.util.Arrays;
public class TDependency {
2020-03-08 08:31:34 +00:00
public static final String MAVEN_REPO = "https://maven.aliyun.com/repository/central";
/**
* Jenkins Maven
* <p>
* 线/
*
* @param args
* @return
*/
public static boolean requestPlugin(String... args) {
return false;
}
/**
* Maven Centraloss.sonatype Maven
* <p>
* 线/
*
* @param type groupId:artifactId:version
* @return 使
*/
public static boolean requestLib(String type, String repo, String url) {
// 清理大小为 0 的依赖文件
File libFolder = new File(TabooLib.getPlugin().getDataFolder(), "/libs");
if (libFolder.exists()) {
Arrays.stream(libFolder.listFiles()).filter(listFile -> listFile.length() == 0).forEach(File::delete);
}
if (type.matches(".*:.*:.*")) {
String[] arr = type.split(":");
File file = new File(TabooLib.getPlugin().getDataFolder(), "/libs/" + String.join("-", arr) + ".jar");
if (file.exists()) {
TDependencyLoader.addToPath(TabooLib.getPlugin(), file);
return true;
} else {
if (downloadMaven(repo, arr[0], arr[1], arr[2], file, url)) {
TDependencyLoader.addToPath(TabooLib.getPlugin(), file);
return true;
} else {
return false;
}
}
}
return false;
}
private static boolean downloadMaven(String url, String groupId, String artifactId, String version, File target, String dl) {
2019-07-11 08:59:18 +00:00
TabooLib.getLogger().info(Strings.replaceWithOrder(TabooLib.getInst().getInternal().getString("DEPENDENCY-DOWNLOAD-START"), target.getName()));
2019-07-08 13:23:49 +00:00
return Files.downloadFile(dl.length() == 0 ? url + "/" + groupId.replace('.', '/') + "/" + artifactId + "/" + version + "/" + artifactId + "-" + version + ".jar" : dl, Files.file(target));
}
}