Compare commits

...

3 commits

Author SHA1 Message Date
Erik C. Thauvin 6a588fceae
Merge 385b0cb2a8 into f6aeaa090d 2026-07-15 10:05:17 -07: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 rife.tools.FileUtils;
import java.io.File; import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.*; import java.util.*;
import java.util.regex.Pattern; import java.util.regex.Pattern;
@ -902,12 +904,37 @@ public class BaseProject extends BuildExecutor {
* <p> * <p>
* If the local dependency points to a directory, it will be scanned for jar files. * 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 * @since 1.5.2
*/ */
public LocalDependency local(String path) { public LocalDependency local(String path) {
return new LocalDependency(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());
} }
/** /**
@ -1052,14 +1079,39 @@ public class BaseProject extends BuildExecutor {
* <p> * <p>
* If the local module points to a directory, it will be scanned for jar files. * 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 * @since 2.1
*/ */
public LocalModule localModule(String path) { public LocalModule localModule(String path) {
return new LocalModule(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 * Project directories
*/ */
@ -1918,17 +1970,29 @@ public class BaseProject extends BuildExecutor {
} }
private void addLocalJars(List<File> jars, String path) { private void addLocalJars(List<File> jars, String path) {
var local_file = new File(workDirectory(), path); var local_path = Path.of(path);
if (local_file.exists()) { if (!local_path.isAbsolute()) {
if (local_file.isDirectory()) { local_path = workDirectory().toPath().resolve(path);
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 { if (!Files.exists(local_path)) {
jars.add(local_file); 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. * Returns all the classpath entries for compiling the main sources.
* <p> * <p>