30 lines
1.9 KiB
Markdown
30 lines
1.9 KiB
Markdown
# Java Dependency Scope Classification
|
|
|
|
## Module
|
|
Scanner
|
|
|
|
## Status
|
|
IMPLEMENTED
|
|
|
|
## Description
|
|
Classifies Java dependencies into compile, test, provided, runtime, and system scopes from Maven/Gradle declarations, enabling scope-aware SBOM generation and reachability filtering.
|
|
|
|
## Implementation Details
|
|
- **Build Metadata**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/Internal/BuildMetadata/JavaDependencyDeclaration.cs` - Dependency declaration model with scope classification
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/Internal/BuildMetadata/JavaProjectMetadata.cs` - Project metadata with declared scopes
|
|
- **Maven POM Parsing**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/Internal/Maven/MavenPomParser.cs` - Parses dependency scopes from POM files
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/Internal/Maven/MavenBomImporter.cs` - Imports BOM dependencies with scope
|
|
- **Gradle Parsing**:
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/Internal/Gradle/GradleGroovyParser.cs` - Parses compile/test/runtime configurations
|
|
- `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/Internal/Gradle/GradleKotlinParser.cs` - Kotlin DSL scope extraction
|
|
- **Language Analyzer**: `src/Scanner/__Libraries/StellaOps.Scanner.Analyzers.Lang.Java/JavaLanguageAnalyzer.cs`
|
|
|
|
## E2E Test Plan
|
|
- [ ] Scan a Maven project and verify dependencies are classified into compile, test, provided, runtime, and system scopes
|
|
- [ ] Scan a Gradle project and verify implementation/api/testImplementation/compileOnly configurations map to correct scopes
|
|
- [ ] Verify scope information is included in the generated SBOM
|
|
- [ ] Verify test-scope dependencies are excluded from reachability analysis by default
|
|
- [ ] Verify provided-scope dependencies are correctly handled for runtime vs compile-time analysis
|