Files
jtags/Build.java
2025-03-24 15:56:16 +03:00

42 lines
1.3 KiB
Java

import static nobuild.NoBuild.*;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.stream.Collectors;
public class Build {
static final String program = "jtags";
public static void main(String[] args) {
rebuildSelf(Build.class, args);
String mainClass = "xyz.naofal.jtags.Jtags";
String[] sourcePaths = glob("src/main/java/**.java");
String[] classPaths = glob("third-party/jars/*.jar");
if (classNeedsRebuild(mainClass, sourcePaths)) {
ensureDependencies();
logger.info("Compiling %s...".formatted(program));
compileJava(classPaths, sourcePaths);
}
var argumentPartitions =
Arrays.stream(args).collect(Collectors.partitioningBy(it -> it.startsWith("-D")));
String[] javaArguments = argumentPartitions.get(true).toArray(String[]::new);
String[] programArguments = argumentPartitions.get(false).toArray(String[]::new);
runJava(classPaths, javaArguments, mainClass, programArguments);
}
private static void ensureDependencies() {
Dependency[] dependencies = {
new Dependency("com.h2database", "h2", "2.3.232"),
};
if (!downloadDependencies(mavenCentral, Paths.get("third-party", "jars"), dependencies)) {
logger.severe("Could not download all dependencies");
System.exit(1);
}
}
}