[Feature] Add Java support to CLI
We have a Java API working in Azure/azure-dev-pr#459 and need to update the azdev CLI to support packaging and deployment.
We have references here: https://github.com/microsoft/nubesgen-actions/blob/main/gitops-build-java-maven/action.yml https://github.com/microsoft/nubesgen-actions/blob/main/gitops-deploy-to-app-service-java/action.yml
And @jdubois Can help with any questions.
For deployment you have 2 main options with Java:
- There is a Maven plugin to deploy directly using the build tool (there is another popular build tool in Java, called Gradle, which has the same option)
- There is a dedicated GitHub Action
I would rather use the GitHub Action (that's what we do in NubesGen.com and I can elaborate if needed), but as with NPM and dotnet you seem to use the build tool to deploy, I'm guessing it would make more sense to do the same here, and use Maven. WDYT?
We'd like to have both the action and it be built into the cli. So, the user is presented with both options and az dev deploy works without having to configure a GH action
@jdubois Do you know if the Maven plugin vs Gradle is more popular amongst Java developers for package/deploy? We'll might end up supporting both if the userbase is big enough, but I think we'll start with one for early iterations.
@jdubois Do you know if the Maven plugin vs Gradle is more popular amongst Java developers for package/deploy? We'll might end up supporting both if the userbase is big enough, but I think we'll start with one for early iterations.
@weikanglim it will be Maven to start with based on the data collected by @savannahostrowski
Yes Maven is much more popular than Maven for building/packaging a Java application. Then for deploying, our data shows that most people are using the CLI, the VS Code plugin or a tool like Terraform, than the Maven plugin.
@jdubois Do you know if the Maven plugin vs Gradle is more popular amongst Java developers for package/deploy? We'll might end up supporting both if the userbase is big enough, but I think we'll start with one for early iterations.
@weikanglim it will be
Mavento start with based on the data collected by @savannahostrowski
FYI, Gradle is the default one now on https://start.spring.io , so I'd suggest we add gradle support as well
@stliu Created #2705. Let's discuss and upvote there!