bazelbuild / bazelbuild/rules_java

Add better support for generated resources

Abierto
#275 9 comentarios 0 reacciones 0 asignados Ver en GitHub
P3
Lenguaje dominante
Starlark
Estrellas
103
Forks
102
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

[`java_library.srcs`](https://bazel.build/reference/be/java#java_library.srcs) supports `.srcjar` files to facilitate including generated sources. `.properties` files included in `java_library.srcs` are filtered and included in `java_library.resources`. Consider extending the current behaviour so that `.properties` files included in `.srcjar` files are also included in `java_library.resources`. This will facilitate the usage of generated resources.

For example, I have a `genrule` that generates `.java` and `.properties` files and I don't necessarily know all of them during the analysis phase for declaration purposes. For this reason, my rule instead generates a `.srcjar` file. However, the `.properties` files inside that `.srcjar` file are being skipped.

There are other alternative ways of going about it:

- There's already an internal [`resource_jars`](https://github.com/bazelbuild/rules_java/blob/8.9.0/java/common/rules/impl/basic_java_library_impl.bzl#L95) field that could perhaps be reused for this effect (at the moment it seems to always be forced as empty)? However, straight including `.srcjar` files in this field won't achieve the desired outcome as this can result in `.java` files appearing inside the final `.jar` file. Maybe somehow expose this field to users?

- Support something like `.resourcejar` files in `java_library.resources`. This would be a breaking change :pensive:.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Start by reading java/common/rules/impl/basic_java_library_impl.bzl around the resource_jars field and trace how java_library.srcs and java_library.resources handle generated inputs. Compare the proposed approaches and define the completed behavior as preserving Java sources while including .properties files found inside .srcjar outputs.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
build-system
Tipo de issue
Nueva funcionalidad
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.