Adding a new client module to the Azure SDK for Java requires changes to Maven and Azure Pipeline configurations. A module may be added to an existing group (e.g. sdk/storage) or to a brand-new group.
- Place the module under
sdk/<group>/<new-module>/ - Directory name must match the package name without the leading
com, e.g. packagecom.azure.newservice.newpackage→ directoryazure-newservice-newpackage
Required files:
| File | Notes |
|---|---|
CHANGELOG.md |
Follow changelog guidance |
pom.xml |
Parent: sdk/parents/azure-client-sdk-parent/pom.xml |
README.md |
Use the README template |
src/ |
Java source |
Note: Failing to follow the
CHANGELOGorREADMEspecifications causes PR validation failures.
If the module starts a new service group, you must create a sdk/<new-group>/ directory and a group-level pom.xml that aggregates the modules within it.
Add your module to the root pom.xml <modules> section alphabetically:
<modules>
<!-- ... alphabetically sorted existing modules ... -->
<module>sdk/myservice/azure-myservice/</module>
<!-- ... -->
</modules>Add an entry to the aggregate Javadoc POM.
Add a line to eng/versioning/version_client.txt:
com.azure:azure-myservice;1.0.0-beta.1;1.0.0-beta.1
Run the version-update script to propagate versions across POMs:
python eng/versioning/update_versions.py --srSee versioning.md for full details.
Add the module to aggregate POMs used by SpotBugs and JaCoCo (usually pom.client.xml).
If your module uses code generation, add an entry to eng/.docsettings.yml under known_content_issues to suppress the generated README from failing PR structure validation.
For a new service group directory, add an entry to .github/CODEOWNERS:
/sdk/myservice/ @githubuser1 @githubuser2
- Missing version in
version_client.txt: Runpython eng/versioning/update_versions.py --srto auto-fix. - Module not found in IntelliJ: Ensure you added it to the root
pom.xml<modules>section. - Checkstyle / SpotBugs failures: Ensure parent POM is
azure-client-sdk-parent.
- Create
sdk/core/azure-core-mqtt/ - Add
pom.xmlwithazure-client-sdk-parentas parent - Add to root
pom.xmlmodules alphabetically - Add version entry to
eng/versioning/version_client.txt - Add to aggregate POM
pom.client.xml
All steps above plus:
- Create
sdk/newservice/with group-levelpom.xml - Add to
.github/CODEOWNERS - Create
sdk/newservice/ci.ymlpipeline file