You want to generate an application via JHipster, but you require to understand what build tool types are possible? Read on to understand…
Sample jdl with build tool definition
application {
config {
...
packageName com.xenvovation.my.gateway
buildTool maven
clientFramework ...
}
}
You can find all current supported build tool types in github in the typescript file build-tool-types.ts
Now you have to decide between maven and gradle. The nice thing JHipster provides for both a wrapper, so that your users do not need to maintain a locally installed build tool. All developers of the project use the same build tool.
Available build tools
- maven
this is a mature build tool, which belongs to the best maintained build tools at all. Even if it looks strange to develop in xml, the pom.xml it is a good and nice way to ensure your buidl file is well formatted and easy to parse. Often it is said, that maven is slower as gradle, but does this really matter for the case there you build via CI/CD? The decision shall be taken about maturity, stability and about having extensions/plugins for all possible cases you may require in your project. And here is a big factor the maturity of the build tool. Also the stable and hard build phases are often loved by mature developers, since “creative custom build phases” get ommited and every developer despite of the age and experience has to follow the common guidelines of maven. - gradle
this is the newer build tool, which funnily is using maven’s artifact repository structure to access dependencies. Gradle is also more flexible in the terms of defining custom build phases. Which is sometimes referred as a big plus vs maven.
Related articles
Available JHipster database types for JDL
Available JHipster authentication types for JDL
Available JHipster application types for JDL
Available JHipster client framework types for JDL
Available JHipster cache provider types for JDL