in doc-architect/doc-architect-core/src/main/java/com/docarchitect/core/scanner/impl/dotnet/NuGetDependencyScanner.java [175:244]
public ScanResult scan(ScanContext context) {
log.info("Scanning NuGet dependencies in: {}", context.rootPath());
List<Dependency> dependencies = new ArrayList<>();
List<Component> components = new ArrayList<>();
String sourceComponentId = IdGenerator.generate(context.rootPath().toString());
Component dotnetProject = new Component(
sourceComponentId,
context.rootPath().getFileName().toString(),
ComponentType.LIBRARY,
DOTNET_PROJECT_TYPE,
DOTNET_TECHNOLOGY,
null,
Map.of()
);
components.add(dotnetProject);
context.findFiles(CSPROJ_PATTERN).forEach(file -> {
try {
parseCsprojFile(file, sourceComponentId, dependencies);
} catch (IOException e) {
log.warn("Failed to parse .csproj file: {} - {}", file, e.getMessage());
}
});
context.findFiles(PACKAGES_CONFIG_PATTERN).forEach(file -> {
try {
parsePackagesConfig(file, sourceComponentId, dependencies);
} catch (IOException e) {
log.warn("Failed to parse packages.config: {} - {}", file, e.getMessage());
}
});
context.findFiles(BUILD_PROPS_PATTERN).forEach(file -> {
try {
parseDirectoryBuildProps(file, sourceComponentId, dependencies);
} catch (IOException e) {
log.warn("Failed to parse Directory.Build.props: {} - {}", file, e.getMessage());
}
});
context.findFiles(PACKAGES_PROPS_PATTERN).forEach(file -> {
try {
parseDirectoryPackagesProps(file, sourceComponentId, dependencies);
} catch (IOException e) {
log.warn("Failed to parse Directory.Packages.props: {} - {}", file, e.getMessage());
}
});
context.findFiles(ROOT_PACKAGES_PROPS_PATTERN).forEach(file -> {
try {
parseDirectoryPackagesProps(file, sourceComponentId, dependencies);
} catch (IOException e) {
log.warn("Failed to parse Directory.Packages.props: {} - {}", file, e.getMessage());
}
});
log.info("Found {} NuGet dependencies", dependencies.size());
return buildSuccessResult(
components,
dependencies,
List.of(),
List.of(),
List.of(),
List.of(),
List.of()
);
}