Azure SDK for Java

April 23, 2026 · View on GitHub

This directory is the canonical documentation hub for the Azure SDK for Java repository. It is structured so that both humans and LLM/agent tooling can navigate directly to any topic.

Not sure where to start?


Repository at a Glance

ItemLocation
Root README (overview, packages, need help)/README.md
Contributing rules & PR process/CONTRIBUTING.md
Security policy/SECURITY.md
Support channels/SUPPORT.md
Code of Conduct/CODE_OF_CONDUCT.md
Per-library documentationsdk/<service>/<library>/README.md
Per-library changelogsdk/<service>/<library>/CHANGELOG.md
Engineering tooling & pipelines/eng/
GitHub Copilot agent instructions.github/copilot-instructions.md

Getting Started

The fastest way to start is to find your service in the list of available packages and follow that library's README.md.

All client libraries:

  • Baseline on Java 8 and are tested up to the latest Java LTS release.
  • Follow the Azure SDK Design Guidelines for Java.
  • Share common infrastructure (retry, logging, authentication, tracing) from azure-core.

Add whatever library you need. Example for Azure Blob Storage:

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-storage-blob</artifactId>
  <version>12.x.x</version>
</dependency>

Or use the Azure SDK BOM to manage versions automatically:

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-sdk-bom</artifactId>
      <version>1.2.x</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

See BOM Guidelines for details.


User Guides

For consumers of the Azure SDK for Java libraries:

GuideDescription
Frequently Asked QuestionsAsync gotchas, dependency conflicts, Security Manager
Azure Identity ExamplesAll credential types with code samples
ConfigurationEnvironment variables, HTTP client tuning, retries
LoggingSLF4J setup, log levels, HTTP logging, filtering by package
Performance TuningSSL, connection pooling, async vs. sync
Test Proxy MigrationMigrate test recordings to the external assets repo
Azure JSON MigrationReplace Jackson with azure-json stream serialization
SerializationJacksonAdapter, JsonSerializer, default config
Protocol MethodsDirect low-level HTTP access via RequestOptions
Management LibrariesAuth, sync/async calls, LROs for ARM libraries
Azure V2 — Logging & HTTPclientcore logging best practices, OkHttp
Using the SDK with AI toolsCopilot, MCP server, Azure SDK skills, AI coding tools

Contributor Guides

For developers building or maintaining SDK libraries:

GuideDescription
Contributor Guide IndexIndex of all contributor guides
Getting StartedSet up your dev environment (Java, Maven, Git, IDE)
BuildingBuild commands, skipping analysis, HTML reports
Unit TestingMocking, test parallelization, remote debugging
Live TestingDeploy test resources and run live tests
Code QualityCheckStyle, SpotBugs, Revapi, JaCoCo
VersioningVersion files, dependency tags, incrementing
Adding a ModuleCreate a new SDK module in the repo
TypeSpec QuickstartEnd-to-end workflow: generate, build, test, release
Working with AutoRestOpenAPI 2.0 / Swagger code generation
Writing Performance Testsperf-test-core benchmarking framework
JavaDoc & Code SnippetsJavadoc standards + codesnippet plugin
Access HelpersCross-package internal access without public APIs
Deprecation ProcessHow to mark a library deprecated and release it
BOM GuidelinesAzure SDK BOM (bill of materials) guidelines
Release ChecklistPre-release checklist from Beta 1 through GA
Credential ScanMonitor and fix CredScan warnings
SDK Generation Pipeline TroubleshootingDiagnose SDK auto-generation pipeline failures

Documentation Placement Decisions

See STRUCTURE.md for the full rationale on what lives here versus in eng/ or alongside individual SDK libraries.


Need Help?


Documentation

The docs/ directory is the authoritative source for contributor and user documentation. Key topics previously on the GitHub Wiki have been migrated here.