You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.4 KiB
3.4 KiB
| name | description | version |
|---|---|---|
| analyze-structure | Analyze Java project structure, package hierarchy, and code organization. Use when user wants to understand project architecture, identify modules, or map code organization. | 1.0.0 |
Java Project Structure Analysis
This skill analyzes Java project structure and organization.
When to Use
- User wants to understand project architecture
- User needs to identify modules and packages
- User wants to map code organization
- User needs to find specific code components
Analysis Steps
1. Package Hierarchy
Map the package structure:
# Get all packages
find <dir> -name "*.java" -o -name "*.class" | \
sed 's|/[^/]*\.\(java\|class\)$||' | \
sort -u | \
sed 's|/|.|g'
2. Module Identification
Identify logical modules:
| Pattern | Likely Module |
|---|---|
*.domain |
Data models/entities |
*.dao |
Data access layer |
*.service |
Business logic |
*.action |
Web controllers (Struts) |
*.util |
Utility classes |
*.common |
Shared components |
*.framework |
Framework code |
3. Class Distribution
Count classes per package:
find <dir> -name "*.java" | \
sed 's|/[^/]*\.java$||' | \
sort | uniq -c | sort -rn
4. Architecture Layers
Identify architecture patterns:
Presentation Layer
├── Actions (Struts)
├── Controllers (Spring MVC)
└── View (JSP/HTML)
Business Layer
├── Services
├── Service Implementations
└── Business Logic
Data Access Layer
├── DAOs
├── DAO Implementations
└── ORM (iBatis/Hibernate)
Domain Layer
├── Domain Objects
├── Value Objects
└── Entities
5. Dependency Flow
Analyze package dependencies:
# Find imports in each file
grep -r "^import" <dir> | \
sed 's|:.*import |: |' | \
sed 's|;||'
Structure Report
Generate a structure report:
# Run the analysis script
bash C:/Users/K/.claude/plugins/cache/claude-plugins-official/plugin-dev/9eae436aa296/scripts/analyze-deps.sh <classes_dir>
Common Patterns
Enterprise Java (EJB/J2EE)
com.company.project
├── ejb/ # Enterprise beans
├── web/ # Web components
├── common/ # Shared code
└── util/ # Utilities
Spring Application
com.company.project
├── controller/ # Spring MVC controllers
├── service/ # Service interfaces
├── service/impl/ # Service implementations
├── repository/ # Data repositories
├── model/ # Domain models
└── config/ # Configuration
Struts Application
com.company.project
├── action/ # Struts actions
├── form/ # Action forms
├── bo/ # Business objects
├── dao/ # Data access
└── domain/ # Domain objects
Output Format
The analysis should produce:
- Package Map: Visual hierarchy of packages
- Module List: Identified modules with descriptions
- Class Count: Statistics per package
- Dependency Graph: Package dependencies
- Architecture Diagram: Layer structure
Integration
After structure analysis:
- Use
generate-projectto create build structure - Use
understand-codeto dive into specific modules - Use
analyze-dependenciesfor detailed dependency mapping