This is an automated email from the ASF dual-hosted git repository. jdaugherty pushed a commit to branch corrupt-jar-fixes in repository https://gitbox.apache.org/repos/asf/grails-core.git
commit 7f687312f38f243f1779a788a1c7dbe9409b06f4 Author: James Daugherty <[email protected]> AuthorDate: Fri May 16 10:13:34 2025 -0400 do not fail on find main class if the project is a grails plugin --- grails-geb/build.gradle | 15 --------------- .../org/grails/gradle/plugin/run/FindMainClassTask.groovy | 7 +++++++ 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/grails-geb/build.gradle b/grails-geb/build.gradle index df15557a71..c6543ebdae 100644 --- a/grails-geb/build.gradle +++ b/grails-geb/build.gradle @@ -14,12 +14,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - -import org.springframework.boot.gradle.tasks.bundling.BootArchive -import org.springframework.boot.gradle.tasks.bundling.BootJar - - - plugins { id 'java-library' id 'java-test-fixtures' @@ -67,15 +61,6 @@ dependencies { compileOnly 'org.gebish:geb-spock' } -// geb can't build a valid bootJar because it isn't an application, it's only a plugin -tasks.withType(BootJar).configureEach { - it.enabled = false -} - -tasks.withType(BootArchive).configureEach { - it.enabled = false -} - apply { // java-configuration must be applied first since tasks are now lazy registered from rootProject.layout.projectDirectory.file('gradle/java-config.gradle') diff --git a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/FindMainClassTask.groovy b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/FindMainClassTask.groovy index 79713f75ff..d5e611a49f 100644 --- a/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/FindMainClassTask.groovy +++ b/grails-gradle/plugins/src/main/groovy/org/grails/gradle/plugin/run/FindMainClassTask.groovy @@ -31,6 +31,7 @@ import org.gradle.api.tasks.PathSensitivity import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetOutput import org.gradle.api.tasks.TaskAction +import org.grails.gradle.plugin.core.GrailsPluginGradlePlugin import org.grails.gradle.plugin.util.SourceSets import org.grails.io.support.MainClassFinder import org.springframework.boot.gradle.dsl.SpringBootExtension @@ -124,6 +125,12 @@ class FindMainClassTask extends DefaultTask { if (mainClass != null) { mainClassFile.text = mainClass } else { + if (project.plugins.hasPlugin(GrailsPluginGradlePlugin)) { + // this is ok if the project is a plugin because it's likely not going to be a runnable grails app + project.logger.lifecycle("WARNING: this plugin project does not have an Application.class and thus the bootJar / bootRun will be invalid.") + return null + } + throw new RuntimeException("Could not find Application main class. Please set 'springBoot.mainClass' or disable BootJar & BootArchive tasks.") } }
