apache / apache/grails-core

war contents for WEB-INF/classes/META-INF/services are wrong after updating to grails-gradle-plugin 5.1.3

Open
#14,147 0 comments 0 reactions 0 assignees View on GitHub
relates-to: gradle-plugin
Dominant language
Groovy
Stars
2.9k
Forks
975
Avg merge
1d 22h
Merged PRs (30d)
92

Description

Our app (https://github.com/rundeck/rundeck) uses grails 5.1.2, and we were upgrading to 5.1.4. We simultaneously attempted to update grails-gradle-plugin version from 5.1.1 to 5.1.3 and encountered an error:

The war file contents now are incorrect. Previously the `/WEB-INF/classes/META-INF/services` path contained the java service definitions. When building with grails-gradle-plugin 5.1.3, it seems the service definitions are instead placed in `/META-INF/services/`. Reverting to grails-gradle-plugin 5.1.2 seems to restore the correct behavior.

Using 5.1.3:

```
jar tvf rundeckapp/build/libs/rundeck-4.0.0-SNAPSHOT.war | grep META-INF/services
0 Tue Mar 29 16:45:26 PDT 2022 META-INF/services/
124 Tue Mar 29 16:44:00 PDT 2022 META-INF/services/org.grails.datastore.mapping.services.Service
133 Tue Mar 29 15:58:16 PDT 2022 META-INF/services/com.dtolabs.rundeck.core.encrypter.PasswordUtilityEncrypter
179 Tue Mar 29 15:58:16 PDT 2022 META-INF/services/org.rundeck.app.bootstrap.PreBootstrap
47 Tue Mar 29 15:58:16 PDT 2022 META-INF/services/org.eclipse.jetty.util.security.CredentialProvider
485 Tue Mar 29 15:58:16 PDT 2022 META-INF/services/org.rundeck.core.plugins.PluginProviderServices
0 Tue Mar 29 16:44:00 PDT 2022 WEB-INF/classes/META-INF/services/
```

Reverting to 5.1.1 (or 5.1.2):

```
jar tvf rundeckapp/build/libs/rundeck-4.0.0-SNAPSHOT.war | grep META-INF/services
0 Tue Mar 29 16:40:50 PDT 2022 WEB-INF/classes/META-INF/services/
124 Tue Mar 29 16:40:50 PDT 2022 WEB-INF/classes/META-INF/services/org.grails.datastore.mapping.services.Service
133 Tue Mar 29 15:58:16 PDT 2022 WEB-INF/classes/META-INF/services/com.dtolabs.rundeck.core.encrypter.PasswordUtilityEncrypter
179 Tue Mar 29 15:58:16 PDT 2022 WEB-INF/classes/META-INF/services/org.rundeck.app.bootstrap.PreBootstrap
47 Tue Mar 29 15:58:16 PDT 2022 WEB-INF/classes/META-INF/services/org.eclipse.jetty.util.security.CredentialProvider
485 Tue Mar 29 15:58:16 PDT 2022 WEB-INF/classes/META-INF/services/org.rundeck.core.plugins.PluginProviderServices

```

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the WAR listing with grails-gradle-plugin 5.1.3, then compare it with 5.1.2 or 5.1.1 using the reported `jar tvf ... | grep META-INF/services` command. Trace the WAR packaging change and verify that the service definitions are restored under `WEB-INF/classes/META-INF/services/`.

Written by the indexing model from the issue text.

Assessment

Tech stack
groovy
Domain
build-system
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.