deploy icu4j and "utilities.jar" to Github maven on tag


Note This is to support CLDR-11585, CLDR's move to Maven.

Currently, icu4j.jar and utilities.jar are checked in to CLDR.

I would like to, on every ICU[4j] tag, build and deploy these artifacts to the Github package repository, so they are available for CLDR to build against, without needing to copy the jars into the repo.

We used to create releases such as, and I think we could do something similar: perhaps a tag named `forcldr/cldr38-d00` or something like that.

This could be implemented using Github actions, so would not have an impact on any existing ICU build structure. It would be only active on tags.


Markus Scherer
September 30, 2020, 11:18 PM

Please finish this up. If it’s all done already, please just close as fixed. If there is more work past ICU 68, then please submit a follow-up ticket.

Steven R. Loomis
September 11, 2020, 2:06 PM

I forgot that the UnicodeJsps also use these two jars. UnicodeJsps would be a good target to mavenize, and would then benefit from this same ICU improvement.

Yoshito Umaoka
September 1, 2020, 4:11 PM

In ICU4J, utilities.jar for CLDR is built with a custom target collecting some classes from a few different ICU4J submodules. In future, we may refactor ICU and make mutually exclusive modules, then release them as independent components.

I understand you’d go for Github package repository, and no need to worry about maven central compatibility. But we may still want to leave a room to drive everything through maven central in future. From this point of view, I prefer to use specific component name for utilities.jar. I’m fine with the group ID - I prefer to use cldr-utilities as artifactId, because we may use the generic name utilities in ICU4J side in future.

Anyway, I support what you proposed in this issue.

Steven R. Loomis
August 28, 2020, 9:06 PM

and all, what do you think of using the artifact utilities for the utilities jar? (under groupId ?) Otherwise it could also be cldr-utilities or similar?

I’m prototyping (on my own maven repo in github) using the version number:



so, for example 0.0.0-a1da2233f528c13a54a09da27e69a361f9491fbf is that specific commit’s artifact. This way it won’t conflict with ‘real’ icu4j in maven central.

Steven R. Loomis
August 28, 2020, 3:54 PM

we also could push a new package on all commits to master, then you could always download “latest” icu4j.

Your pinned fields
Click on the next to a field label to start pinning.


Steven R. Loomis


Steven R. Loomis




Fix versions