Quantcast
Channel: Java mon amour
Viewing all articles
Browse latest Browse all 1124

Sanity check on a Nexus 2 Maven Proxy repo

$
0
0
The task is: verify that all the JARs in a Nexus 2 repo are still in Maven Central.

I did a
find /path/to/nexusdata/central -name "*.jar"> alljarsfiltered.txt


and then run this Java application:


package mavenchecker;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Stream;

public class MavenChecker {
public static ArrayList<String> errors = new ArrayList<String>();
public static ArrayList<String> nonexisting = new ArrayList<String>();
static int count = 0;

public static void main(String[] args) {

String fileName = "/home/centos/Downloads/alljarsfiltered.txt";

// read file into stream, try-with-resources
try (Stream<String> stream = Files.lines(Paths.get(fileName)).parallel()) {

stream.forEach((line) -> checkLine(line));


} catch (IOException e) {
e.printStackTrace();
}

for (String error : errors) {
System.out.println("ERROR : " + error);
}

for (String nonexistingItem : nonexisting) {
System.out.println("nonexisting : " + nonexistingItem);
}

}

private static void checkLine(String line) {
count++;
if (count % 100 == 0) {
System.out.println("COUNT " + count);
}
if (!line.endsWith(".jar"))
return;

String gavstring = line.replace("/path/to/nexusdata/central/", "");
String[] parts = gavstring.split("/");
int len = parts.length;
if (len < 4) {
System.err.println("invalid length for gavstring " + gavstring + " len = " + len + " should be at least 4");
errors.add(gavstring);
} else {
String filename = parts[len - 1];
String version = parts[len - 2];
String artifactid = parts[len - 3];
String group = String.join(".", Arrays.copyOfRange(parts, 0, len - 3));
String message = "filename=" + filename + " group=" + group + " artifactid=" + artifactid + " version=" + version;
//System.out.println(message);
boolean exists = exists("https://repo.maven.apache.org/maven2/" + gavstring);
if (!exists) nonexisting.add(gavstring);


}

}

public static boolean exists(String URLName){
try {
HttpURLConnection.setFollowRedirects(false);
// note : you may also need
// HttpURLConnection.setInstanceFollowRedirects(false)
HttpURLConnection con =
(HttpURLConnection) new URL(URLName).openConnection();
con.setRequestMethod("HEAD");
return (con.getResponseCode() == HttpURLConnection.HTTP_OK);
}
catch (Exception e) {
e.printStackTrace();
return false;
}
}

}



Viewing all articles
Browse latest Browse all 1124

Trending Articles