Compare commits

...

4 commits

Author SHA1 Message Date
Erik C. Thauvin 295dfb1973
Merge 385b0cb2a8 into 734ac585ab 2026-07-13 18:59:33 +02:00
Geert Bevin 734ac585ab Announce dependency analysis before resolution starts
Some checks are pending
bld-ci / build (./bld, 17, macos-latest, false) (push) Waiting to run
bld-ci / build (./bld, 21, macos-latest, false) (push) Waiting to run
bld-ci / build (./bld, 25, macos-latest, false) (push) Waiting to run
bld-ci / build (./bld, 26, macos-latest, false) (push) Waiting to run
bld-ci / build (.\bld.bat, 17, windows-latest, false) (push) Waiting to run
bld-ci / build (.\bld.bat, 21, windows-latest, false) (push) Waiting to run
bld-ci / build (.\bld.bat, 25, windows-latest, false) (push) Waiting to run
bld-ci / build (.\bld.bat, 26, windows-latest, false) (push) Waiting to run
bld-ci / build (unittests, password, unittests, mariadb:10.9, mysql:8, gvenzl/oracle-free:latest, gvenzl/oracle-xe:18-slim, postgres:15, ./bld, 17, ubuntu-latest, true) (push) Waiting to run
bld-ci / build (unittests, password, unittests, mariadb:10.9, mysql:8, gvenzl/oracle-free:latest, gvenzl/oracle-xe:18-slim, postgres:15, ./bld, 21, ubuntu-latest, true) (push) Waiting to run
bld-ci / build (unittests, password, unittests, mariadb:10.9, mysql:8, gvenzl/oracle-free:latest, gvenzl/oracle-xe:18-slim, postgres:15, ./bld, 25, ubuntu-latest, true) (push) Waiting to run
bld-ci / build (unittests, password, unittests, mariadb:10.9, mysql:8, gvenzl/oracle-free:latest, gvenzl/oracle-xe:18-slim, postgres:15, ./bld, 26, ubuntu-latest, true) (push) Waiting to run
javadocs-pages / deploy (push) Waiting to run
2026-07-13 01:26:02 -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
3 changed files with 81 additions and 11 deletions

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());
}
/**
@ -997,14 +1024,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
*/
@ -1863,17 +1915,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>

View file

@ -58,6 +58,9 @@ public class DownloadOperation extends AbstractOperation<DownloadOperation> {
return;
}
if (!silent()) {
System.out.println("Analyzing dependencies...");
}
executeDownloadCompileDependencies();
executeDownloadProvidedDependencies();
executeDownloadRuntimeDependencies();

View file

@ -95,6 +95,9 @@ public class WrapperExtensionResolver {
roots.add(d);
}
}
if (!roots.isEmpty()) {
System.out.println("Analyzing bld extension dependencies...");
}
var dependencies = new ParallelDependencyResolver(resolution_, retriever_, repositories_).resolveAllDependencies(roots, Scope.compile, Scope.runtime);
if (!dependencies.isEmpty()) {
ensurePrintedHeader();