Compare commits

...

3 commits

Author SHA1 Message Date
Erik C. Thauvin e6c933eb6a
Merge 385b0cb2a8 into 7d77f48aec 2026-07-17 10:50:32 -04:00
Erik C. Thauvin 385b0cb2a8
Minor cleanups 2026-07-09 09:36:03 -07:00
Erik C. Thauvin fb88954933
Add support for specifying a local JAR or module using an absolute path 2026-07-08 16:16:16 -07:00

View file

@ -11,6 +11,8 @@ import rife.bld.operations.*;
import rife.tools.FileUtils;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*;
import java.util.regex.Pattern;
@ -902,12 +904,37 @@ public class BaseProject extends BuildExecutor {
* <p>
* If the local dependency points to a directory, it will be scanned for jar files.
*
* @param path the file system path of the local dependency
* @param path the file system path (absolute or relative to the {@link #workDirectory})
* of the local dependency
* @since 1.5.2
*/
public LocalDependency local(String path) {
return new LocalDependency(path);
} /**
/**
* Creates a local dependency instance.
* <p>
* If the local dependency points to a directory, it will be scanned for jar files.
*
* @param path the file system path (absolute or relative to the {@link #workDirectory})
* of the local dependency
* @since 2.3.1
*/
public LocalDependency local(Path path) {
return new LocalDependency(path.toString());
}
/**
* Creates a local dependency instance.
* <p>
* If the local dependency points to a directory, it will be scanned for jar files.
*
* @param path the file system path of the local dependency
* @since 2.3.1
*/
public LocalDependency local(File path) {
return new LocalDependency(path.getAbsolutePath());
}
/**
@ -1053,14 +1080,39 @@ public class BaseProject extends BuildExecutor {
* <p>
* If the local module points to a directory, it will be scanned for jar files.
*
* @param path the file system path of the local module
* @param path the file system path (absolute or relative to the {@link #workDirectory})
* of the local module
* @since 2.1
*/
public LocalModule localModule(String path) {
return new LocalModule(path);
}
/**
* Creates a local module instance.
* <p>
* If the local module points to a directory, it will be scanned for jar files.
*
* @param path the file system path (absolute or relative to the {@link #workDirectory})
* of the local module
* @since 2.3.1
*/
public LocalModule localModule(Path path) {
return new LocalModule(path.toString());
}
/**
* Creates a local module instance.
* <p>
* If the local module points to a directory, it will be scanned for jar files.
*
* @param path the file system path of the local module
* @since 2.3.1
*/
public LocalModule localModule(File path) {
return new LocalModule(path.getAbsolutePath());
}
/*
* Project directories
*/
@ -1919,17 +1971,29 @@ public class BaseProject extends BuildExecutor {
}
private void addLocalJars(List<File> jars, String path) {
var local_file = new File(workDirectory(), path);
if (local_file.exists()) {
if (local_file.isDirectory()) {
var local_jar_files = FileUtils.getFileList(local_file.getAbsoluteFile(), INCLUDED_JARS, EXCLUDED_JARS);
jars.addAll(new ArrayList<>(local_jar_files.stream().map(file -> new File(local_file, file)).toList()));
} else {
jars.add(local_file);
var local_path = Path.of(path);
if (!local_path.isAbsolute()) {
local_path = workDirectory().toPath().resolve(path);
}
if (!Files.exists(local_path)) {
if (verbose()) {
System.err.println("Invalid local dependency path, skipped: " + path);
}
return;
}
if (Files.isDirectory(local_path)) {
var local_jar_files = FileUtils.getFileList(local_path.toFile(), INCLUDED_JARS, EXCLUDED_JARS);
for (var jar : local_jar_files) {
jars.add(local_path.resolve(jar).toFile());
}
} else {
jars.add(local_path.toFile());
}
}
/**
* Returns all the classpath entries for compiling the main sources.
* <p>