This commit is contained in:
Erik C. Thauvin 2026-07-17 10:50:32 -04:00 committed by GitHub
commit e6c933eb6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

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>