This repository contains all Maven plugins for Microsoft Azure services.
- Plugins
- Authentication
- Common Configurations
- CI/CD in Azure DevOps
- Feedback and Questions
- Contributing
- Telemetry
You may be also interested in the Azure Maven Archetypes. These plugins are very closely related to the archetypes, and both kinds of artifacts work together to give you Java your way on Azure.
For more information on authentication, common configurations, CI CD, and general plugin documentation, see the Wiki.
Maven Plugin | Maven Central Version | Build Status |
---|---|---|
Maven Plugin for Azure Web Apps | ||
Maven Plugin for Azure Functions | ||
Maven Plugin for Azure Spring Apps | ||
Maven Plugin for Azure Container Apps |
All the Azure Maven plugins share the same authentication logic. There are 4 authentication methods by priority order:
- Service Principals in plugin configuration
- Service Principals in settings.xml (Recommended for production use)
- Maven Plugin for Azure Account (Default if no other method are used)
- Azure CLI
For example, if you have not only Service Principals configured in your plugin configuration, but also Azure CLI installed and logged in, the Azure Maven plugins will use the Service Principals in your plugin configuration.
If no credential found, Azure Maven plugins will automatically log you in with the third method like OAuth or DeviceLogin provided by Maven Plugin for Azure Account.
You can specify which authentication method to use with in Maven configuration, the default value is auto, and here are all the valid values:
- service_principal
- Will use credential specified in plugin configuration or Maven settings.xml, this is also the first priority authentication method in auto
- azure_auth_maven_plugin
- Will use credential provided by Azure Auth Maven Plugin, it will first consume existing secret files, and will guide you auth with Oath or Device Login if you hadn't authenticated with Auth Maven Plugin before.
- azure_cli
- Will use credential provided by Azure CLI, this could also be used in Azure Cloud Shell.
- auto
- Will try all the auth methods in the following sequence: service_principal, azure_auth_maven_plugin(existing secret files), azure_cli, azure_auth_maven_plugin
Maven plugin will only try the specific authentication method (except auto) if is set in configuration.
See the Authentication section in our wiki for more information.
The three Maven Plugins for Azure Web App/Functions/Spring Apps support below configuration properties.
Property | Required | Description | Version |
---|---|---|---|
<subscriptionId> | false | Specifies the target subscription. Use this setting when you have multiple subscriptions in your authentication file. |
WebApp: 0.1.0 Function: 0.1.0 Spring: 1.0.0 |
<allowTelemetry> | false | Specifies whether to allow this plugin to send telemetry data; default value is true. | WebApp: 0.1.0 Function: 0.1.0 Spring: 1.0.0 |
<auth> | false | Specifies auth configuration. For more info, please refer to here. | WebApp:0.1.0 Function:0.1.0 |
<authType> | false | Specifies which authentication method to use, default value is auto. For more infos, please refer to here. | WebApp:1.9.0 |
<skip> | false | Specifies whether to skip execution. Default value is false. | WebApp: 0.1.4 Function: 0.1.0 |
To report bugs or request new features, file issues on Issues. Or, ask questions on Stack Overflow with tag azure-java-tools.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once in all repositories using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
This project collects usage data and sends it to Microsoft to help improve our products and services.
Read Microsoft's privacy statement to learn more.
If you would like to opt out of sending telemetry data to Microsoft, you can set allowTelemetry
to false in the plugin configuration.
Please read our documents to find more details.