1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
| package hk.gov.cedb.tsw.upload;
import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; import java.nio.file.FileVisitOption; import java.nio.file.Files; import java.nio.file.Paths;
import org.apache.commons.lang3.StringUtils;
public class UploadArtificatToNexus { static String gradleCacheDir = "C:\\Users\\user\\.gradle\\caches\\modules-2\\files-2.1\\org.infinispan";
static String filterVersion = "";
static String repoUser = "me"; static String repoPwd = "my-passwd";
static String uploadUrl = "repo.xx.aa.local";
static String uploadJarScript = "curl -x socks5h://localhost:18580 -k -v -u " + repoUser + ":" + repoPwd + " -F \"maven2.generate-pom=false\" " + "-F \"maven2.groupId=%s\" -F \"maven2.artifactId=%s\" -F \"maven2.packaging=jar\" " + "-F \"version=%s\" -F \"maven2.asset1=@%s;type=application/java-archive\" " + "-F \"maven2.asset1.extension=jar\" \"https://%s/service/rest/v1/components?repository=maven-releases\"";
static String uploadPomScript = "curl -x socks5h://localhost:18580 -k -v -u " + repoUser + ":" + repoPwd + " --upload-file %s " + "https://%s/repository/maven-releases/%s/%s/%s/%s";
static String uploadNpmScript = "curl -x socks5h://localhost:8580 -k -v -u " + repoUser + ":" + repoPwd + " -F \"npm.asset=@C:\\Users\\user\\Downloads\babel-plugin-11.9.2.tgz;type=application/x-compressed\" " + "https://repo.tswp2-dev.local:8443/service/rest/v1/components?repository=npm-releases";
public static void main(String[] args) throws IOException { if (args.length > 0) { gradleCacheDir = args[0]; System.out.println("gradleCacheDir = " + gradleCacheDir); }
uploadArtifact(); }
private static void uploadArtifact() throws IOException { BufferedWriter fw = new BufferedWriter(new FileWriter("d:/artifacts.txt")); try { Files.walk(Paths.get(gradleCacheDir), FileVisitOption.FOLLOW_LINKS).forEach(f -> { try { if (f.toFile().isDirectory()) { return; }
String fileName = f.getFileName().toString();
if (fileName.contains("source")) { return; }
String version = f.getParent().getParent().toFile().getName();
if (StringUtils.isNotBlank(filterVersion) && !filterVersion.equals(version)) { return; }
String artifactId = f.getParent().getParent().getParent().toFile().getName();
String groupId = f.getParent().getParent().getParent().getParent().toFile().getName();
if (fileName.endsWith(version + ".jar")) { String line = String.format(uploadJarScript, groupId, artifactId, version, f.toAbsolutePath().toAbsolutePath(), uploadUrl); System.out.println(line); fw.append(line + "\r\n"); }
if (fileName.endsWith(version + ".pom")) { String line = String.format(uploadPomScript, f.toAbsolutePath(), uploadUrl, groupId.replaceAll("\\.", "/"), artifactId, version, fileName); System.out.println(line); fw.append(line + "\r\n"); }
fw.flush(); } catch (IOException e) { e.printStackTrace(); } });
fw.close(); } catch (IOException e) { e.printStackTrace(); } } }
|