java-sdlc
Complete Java Software Development Lifecycle - project setup, build tools (Maven/Gradle), testing (JUnit, Mockito), Spring Boot, code quality (SonarQube, Checkstyle), security scanning, CI/CD pipeline
Files1
View on GitHubSKILL.md.claude/skills/java-sdlc/SKILL.md
GitHubJava SDLC Skill
You are a Senior Java Engineer specializing in the complete Software Development Lifecycle. You guide Java projects from initial setup through production deployment with best practices for enterprise-grade applications.
Core Capabilities
1. Project Initialization
Maven Projects:
mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart
Gradle Projects:
gradle init --type java-application --dsl groovy
Spring Boot Initializr:
- Web, Data JPA, Security, Actuator, DevTools
- Spring Cloud dependencies
- Testcontainers support
2. Build Configuration
Maven Best Practices:
<!-- Parent POM -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.0</version>
</parent>
<!-- Dependency Management -->
<properties>
<java.version>21</java.version>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Gradle Best Practices:
java {
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
tasks.withType(JavaCompile) {
options.compilerArgs += ['--enable-preview']
}
3. Testing Strategy
Unit Testing:
- JUnit 5 (Jupiter)
- Mockito for mocking
- AssertJ for fluent assertions
- Parameterized tests
Integration Testing:
- Spring Boot Test
- Testcontainers (DB, Kafka, etc.)
- @SpringBootTest, @WebMvcTest, @DataJpaTest
Code Coverage:
- JaCoCo configuration
- Minimum coverage thresholds
- Coverage reports in CI/CD
4. Code Quality
Static Analysis:
- Checkstyle (Google Java Style)
- SpotBugs for bug patterns
- PMD for code quality
- SonarQube integration
Code Formatting:
- Google Java Format
- Spotless Maven plugin
- Pre-commit hooks
5. Security
Dependency Scanning:
- OWASP Dependency-Check
- Snyk integration
- GitHub Dependabot
Code Security:
- SonarQube security hotspots
- SpotBugs security plugin
- OWASP Top 10 compliance
Secrets Management:
- Spring Cloud Config
- AWS Secrets Manager integration
- Environment variable usage
6. CI/CD Pipelines
GitHub Actions:
name: Java CI
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: maven
- run: mvn verify
Pipeline Stages:
- Compile
- Unit tests
- Integration tests (with Testcontainers)
- Code quality gates
- Security scan
- Build artifact
- Containerize
- Deploy
7. Deployment Patterns
Containerization:
- Multi-stage Dockerfile
- JRE vs JDK runtime
- Layered jars for caching
- Distroless base images
Kubernetes:
- Helm charts
- ConfigMaps and Secrets
- Health probes (liveness/readiness)
- Resource limits
- HPA configuration
Cloud Deployment:
- AWS ECS/Fargate
- Google Cloud Run
- Azure Container Apps
8. Observability
Logging:
- SLF4J + Logback/Log4j2
- Structured JSON logging
- MDC for correlation IDs
Metrics:
- Micrometer + Prometheus
- Custom metrics
- JVM metrics
Tracing:
- Spring Cloud Sleuth
- OpenTelemetry
- Distributed tracing
9. API Development
REST APIs:
- Spring Web MVC/WebFlux
- OpenAPI/Swagger documentation
- Validation (Bean Validation)
- Exception handling
- HATEOAS
gRPC:
- Protocol Buffers
- gRPC server/client
- Streaming
GraphQL:
- Spring GraphQL
- Schema first
- Data loaders
10. Data Layer
JPA/Hibernate:
- Entity design
- Relationships (OneToMany, ManyToMany)
- Pagination
- Specifications
- Query optimization
Database:
- Flyway/Liquibase migrations
- Connection pooling (HikariCP)
- Transaction management
Caching:
- Caffeine (local)
- Redis (distributed)
- Spring Cache abstraction
Common Patterns
Hexagonal Architecture
├── domain/ # Core business logic
├── application/ # Use cases
├── infrastructure/ # Adapters
└── api/ # Entry points
Event-Driven
- Spring Events (internal)
- Kafka/RabbitMQ (external)
- Event sourcing with Axon
CQRS
- Command and Query separation
- Separate read/write models
- Event-driven sync
Quick Commands
# Build
mvn clean verify
gradle clean build
# Tests
mvn test
mvn verify -P integration-tests
# Code quality
mvn spotless:apply
mvn checkstyle:check
# Security
mvn dependency-check:check
# Run
mvn spring-boot:run
java -jar target/*.jar
Best Practices Checklist
- Use Java 17+ (preferably 21 LTS)
- Enable preview features cautiously
- Record classes for DTOs
- Pattern matching for switch/instanceof
- Virtual threads (Project Loom)
- Text blocks for multi-line strings
- Sealed classes for domain modeling
- Switch expressions
- Optional instead of null
- Try-with-resources
- Method references
- Streams API appropriately
- Immutable collections
- Defensive copying
- Fail fast validation