For a number of reasons, CLDR has switched to Maven.
The purpose of this document is to assist with initial configuration of Maven.
CLDR pulls pre-release ICU4J jars from ICU's GitHub Maven repository.
At present, GitHub requires authentication even for publicly accessible repositories.
The GitHub documentation covering this topic is https://docs.github.com/en/packages/using-github-packages-with-your-projects-ecosystem/configuring-apache-maven-for-use-with-github-packages and will be referred to.
We are going to create a token. A token is used like a password, and should be kept secret as one. You can revoke a token independently from all other tokens, so we will create a token specifically for this use.
You can run “mvn --version” from the command line to see if Maven is already installed. If you see “Apache Maven 3…” then you are ready to go.
Otherwise, install the “maven” package from your OS or other package manager, or see instructions under https://maven.apache.org/
brew install maven
sudo apt install maven
It might be helpful to refer to the GitHub documentation and the Maven documentation for settings during this step.
The file you will be modifying is .m2/settings.xml (the .m2 directory is in your HOME directory, create it if it does not exist).
If the file doesn't exist, create it with this content. If it does exist, add the <server> stanza into the <servers> section.
Keep the id “githubicu” as it is. (The id “githubcldr” is for accessing CLDR's prebuilt maven assets.)
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <servers> <server> <id>githubicu</id> <!-- needed for building CLDR --> <username>your github id</username> <password>your access token</password> </server> <server> <!-- used by ICU and other clients of CLDR --> <id>githubcldr</id> <username>your github id</username> <password>your access token</password> </server> </servers> </settings>
In the CLDR repo root, go into the tools directory and run:
mvn package
This will run all tests and create the all-in-one tools/cldr-code/target/cldr-code.jar. See CLDR Tools for details on how to use this jar file.
Building without running tests:
mvn package -DskipTests=true
Running specific tests:
Example to run only one test from the main unit tests and one test in the web tests: (one long command line, two separate parameters)
mvn test '-Dorg.unicode.cldr.unittest.testArgs=-f:TestUntimedCounter -n -q' '-Dorg.unicode.cldr.unittest.web.testArgs=-f:TestMisc -n -q'
Peter's version:
To run ConsoleCheck for say a specific locale like “fr”, I might do (from the top of the CLDR directory):
java -DCLDR_DIR=$(pwd) -jar tools/cldr-code/target/cldr-code.jar check -S common,seed -e -z BUILD -f fr
Running a specific tool from Maven:
mvn -DCLDR_DIR=$HOME/src/cldr exec:java -pl cldr-code -Dexec.mainClass=org.unicode.cldr.json.Ldml2JsonConverter -Dexec.args='-p true -r true -t main -m "de"'
(note: a screen capture demonstrating this setup is attached to this page.)