grails-core: package grails-context.xsd in the jar so <grails:component-scan> can be schema-validated
Los mantenedores suelen responder en 1 día
@hk2166 ya está trabajando en esto.
Desde el 17/10/2026.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 74/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- groovy
- Área
- build-system
Línea de trabajo
Empieza con el XSD en grails-core/src/main/groovy/org/grails/spring/context/annotation/grails-context.xsd y con el mapeo en META-INF/spring.schemas, luego revisa la configuración de processResources de la compilación de grails-core. Construye el jar y confirma que el XSD está junto a spring.schemas. Está terminado cuando el jar contiene el esquema y una spec que analiza grails:component-scan puede validar contra él con la validación de esquema habilitada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
META-INF/spring.schemas maps http://grails.org/schema/context/grails-context.xsd to org/grails/spring/context/annotation/grails-context.xsd, but that file lives under grails-core/src/main/groovy, which the build does not treat as a resource directory.
The XSD is therefore missing from the published grails-core jar (checked grails-core-8.1.0-SNAPSHOT.jar: only spring.schemas is there). An XSD-validating parse of <grails:component-scan> cannot resolve its schema locally and Xerces falls back to fetching http://grails.org/schema/context/grails-context.xsd over the network.
The same is true on 8.0.x and 9.0.x, so this is not caused by the Java-to-Groovy conversion.
Packaging the XSD, for example with
processResources {
from('src/main/groovy') { include '**/*.xsd' }
}
fixes it. Specs that parse <grails:component-scan> could then turn schema validation back on.
Found in review of #16586.
- Lenguaje dominante
- Groovy
- Estrellas
- 2.9k
- Forks
- 979
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 190
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de apache/grails-core
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
apache/grails-core#16289 · 5 comentarios ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
apache/grails-core#15764 ·
Los mantenedores suelen responder en 1 día
-
Update documentation for Java 25Posiblemente ocupada @ruthst00 la tomó hace 21 días. Abiertorelates-to: documentation weekly-action-item
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
apache/grails-core#15725 ·
Los mantenedores suelen responder en 1 día
-
grails-data-hibernate5: request-session connection closes after a lazy load inside withNewSessionAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
apache/grails-core#16783 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
apache/grails-core#16766 ·
Los mantenedores suelen responder en 1 día
Todos los issues de apache/grails-core
Issues similares
-
@tailwindcss/vite: build transform returns map: undefined, causing SOURCEMAP_BROKEN under Vite 8/RolldownPosiblemente ocupada @lazerg la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
tailwindlabs/tailwindcss#20622 ·
Los mantenedores suelen responder en 1 día
-
area: server priority: P3 type: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 83/100
appandflow/stim#4538 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
boykopovar/AnyPS5#12124 ·
Los mantenedores suelen responder en 1 día
-
bug-unconfirmed
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día