9

I have build.gradle like this and it works :

plugins {
    id 'org.springframework.boot' version '2.5.8' apply false
    ...
}
...
    springBoot {
        mainClassName = 'com.mir3.service.contactfileparser.Main'
    }

but if I upgrade spring boot version to 2.6.2 it fails with error:

plugins {
    id 'org.springframework.boot' version '2.6.2' apply false
    ...
}
...
    springBoot {
        mainClassName = 'com.mir3.service.contactfileparser.Main'
    }

Error text is:

A problem occurred evaluating root project 'myProject'.
> Could not set unknown property 'mainClassName' for extension 'springBoot' of type org.springframework.boot.gradle.dsl.SpringBootExtension.

How can I fix it ? What is the proper way to migrate from 2.5.8 to 2.6.2 ?

gstackoverflow
  • 36,709
  • 117
  • 359
  • 710

1 Answers1

21

Use:

springBoot {
    mainClass = 'com.mir3.service.contactfileparser.Main'
}

SpringBootExtension has:

/**
 * Returns the fully-qualified name of the application's main class.
 * @return the fully-qualified name of the application's main class
 * @since 2.4.0
 */
public Property<String> getMainClass() {
    return this.mainClass;
}

mainClassName was deprecated in favour of mainClass in 2.4.0 and was scheduled for removal in 2.6.0. It was removed with this commit: Remove deprecated code flagged for removal

Lesiak
  • 22,088
  • 2
  • 41
  • 65
  • 1
    great answer. just thought i'd vent - spring engineering sucks. changing property names to make them shorter is about the dumbest thing you can do. – bharal Apr 14 '23 at 13:10