⭐ New Features
- Disable
@ProjectGenerationContext
bean overriding #999 - Allow to invoke project generation with a custom ProjectRequest #990
- Provide project generation test infrastructure with a dedicated module #988
- Provide abstraction for source directories #987
- Upgrade to Gradle 5.6.0 #986
- Add empty line when content is wrapped #984
- Add Bill of Materials #981
- Add support for removing build plugins #978
- Provide a pluggable strategy for dependency management plugin version resolution #977
- Rename versionRange attribute to compatibilityRange #968
- Add support for Maven resources #967
- Make sure project descriptions line-wrap at a decent length #966
- Infer a link description for single guide and single reference #962
- Do not add snapshot repo unless absolutely necessary #960
- Add jackson-module-kotlin when json facet and kotlin is in use #957
- Add support for mapping a dependency's starter setting #955
- Migrate from Ant to Commons Compress for reading and writing zip and tar.gz files #951
- Make further use of Path in place of File #950
- Provide support for resolving versions from Maven boms #934
- JUnit 4 shouldn't be excluded anymore #930
- Make generated .gitignore more suitable for use in multi-module projects #927
- Provide a pluggable strategy for Kotlin version resolution #926
- Sanitize groupId and artifactId according to maven conventions #924
- Allow adding
<extensions>true</extensions>
to Maven plugin config #921 - Prevent caching issues with browsers #914
- Model that a Maven dependency is optional #913
- TypeDeclaration does not have modifiers #908
- Improve build model to be able to exclude a transitive dependency #906
- Provide idiomatic test setup when JUnit Jupiter is available #905
- Support for instructions in Gradle ext property #893
- Add support for Gradle's tasksWithType #890
- Extend conditions that can apply more than one value #888
- Adding field declaration for java language code generation #881
- Avoid writing plugin repositories section if no plugin repository is configured #880
- Upgrade to GMavenPlus 1.6.3 #878
- MavenBuild does not allow to amend or override settings #867
- Add .gitignore support for vscode #864
- Remove default Web UI from Initializr library #860
- Add missing spaces in generated Gradle code #852
- Add Gradle Kotlin DSL support #851
- Support of custom Gradle dependency configuration #850
- Support of multiple Gradle generations #849
- Workaround the fact IntelliJ IDEA does not support Gradle's annotationProcessor scope #848
- Create an initializr-service sample #844
- Allow PomAssert to be used to assert that a dependency is absent #842
- Allow to filter available Spring Boot versions #816
- Add packaging abstraction #815
- Add build abstraction #814
- Add language abstraction #813
- Add writer with indent support #812
- Migrate asserts to Assertj #764
- Reference links in generated project #353
- DSL to customize project generation #340
🪲 Bug Fixes
- Spring Boot plugin is contributed twice with Gradle #1010
- Links in HELP.md should replace {bootVersion} token #1009
- Invalid cache strategy for metadata lookup #979
- Application code contributors can generate a
null.java
class #975 - Dependency without scope is ignored #972
- DefaultProjectAssetGenerator does not generate project directory if no baseDir is set #971
- MultipleResourcesProjectContributor fails when argument rootResource has trailing / #964
- Invalid error message when a version could not be parsed #948
- Ensure executable bit is set on wrapper when baseDir has space #933
- Gradle configuration creation and customization does not work with Kotlin DSL #917
- ProjectAssert#hasExecutableFile does not test executable flag #910
- Add parentheses with Groovy DSL when a method has no argument #907
- Gradle is not configured to use JUnit Platform for Spring Boot 2.2 #904
- Kotlin DSL does not refer to bom version properly #901
- Help document generation corrupts certain characters #885
- MetadataBuildItemResolver should use platform version #872
- initializr-generator-spring should not be required #871
- Fix Maven Kotlin JPA compiler plugin configuration #868
- Failed to delete temp directory #862
- Avoid applying Kotlin JPA plugin #853
- Wrong dependency scopes for Gradle 3 builds #845
- PomAssert.hasDependency compares dependency's scope, type, and version against itself #841
- Version capability no longer mapped #832
- Empty filename generated with empty groupId and artifactId #831
- String index out of range with empty Group & Artifact #830
- Generated code has two new lines at the end instead of one #828
- Forwarding to error page from request [/starter.zip]due to exception [String index out of range: -1] #827
- Kotlin generator does not replace type of runApplication with specified value #826
- Projects can be generated with empty text capability #769
📔 Documentation
- Update documentation about creating your own instance #953
- Fix start.spring.io example configuration link #928
- Add missing package-info.java files #886
- Document how to update text capabilities defaults #857
- Document how to generate a project structure #846
❤️ Contributors
We'd like to thank all the contributors who worked on this release!