war contents for WEB-INF/classes/META-INF/services are wrong after updating to grails-gradle-plugin 5.1.3
- 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
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