• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1*********************************************************************
2*** © 2019 and later: Unicode, Inc. and others.                   ***
3*** License & terms of use: http://www.unicode.org/copyright.html ***
4*********************************************************************
5
6What is this directory and why is it empty?
7-------------------------------------------
8
9This is the root of a local Maven repository which needs to be populated before
10code which uses the CLDR data API can be executed.
11
12To do this, you need to have a local copy of the CLDR project configured on your
13computer and be able able to build the API jar file and copy an existing utility
14jar file. In the examples below it is assumed that $CLDR_ROOT references this
15CLDR release.
16
17Setup
18-----
19
20This project relies on the Maven build tool for managing dependencies and uses
21Ant for configuration purposes, so both will need to be installed. On a Debian
22based system, this should be as simple as:
23
24$ sudo apt-get install maven ant
25
26
27Installing the CLDR API jar
28---------------------------
29
30From this directory:
31
32$ ./install-cldr-jars.sh "$CLDR_DIR"
33
34
35Manually installing the CLDR API jar
36------------------------------------
37
38Only follow these remaining steps if the installation script isn't suitable or
39doesn't work on your system.
40
41To regenerate the CLDR API jar you need to build the "jar" target manually
42using the Ant build.xml file in the "tools/java" directory of the CLDR project:
43
44$ cd "$CLDR_ROOT/tools/java"
45$ ant clean jar
46
47This should result in the cldr.jar file being built into that directory, which
48can then be installed as a Maven dependency as described above.
49
50
51Updating local Maven repository
52-------------------------------
53
54To update the local Maven repository (e.g. to install the CLDR jar) then from
55this directory (lib/) you should run:
56
57$ mvn install:install-file \
58  -Dproject.parent.relativePath="" \
59  -DgroupId=org.unicode.cldr \
60  -DartifactId=cldr-api \
61  -Dversion=0.1-SNAPSHOT \
62  -Dpackaging=jar \
63  -DgeneratePom=true \
64  -DlocalRepositoryPath=. \
65  -Dfile="$CLDR_ROOT/tools/java/cldr.jar"
66
67And if you have updated one of these libraries then from this directory run:
68
69$ mvn dependency:purge-local-repository \
70  -Dproject.parent.relativePath="" \
71  -DmanualIncludes=org.unicode.cldr:cldr-api:jar
72
73After doing this, you should see something like the following list of files in
74this directory:
75
76README.txt   <-- this file
77org/unicode/cldr/cldr-api/maven-metadata-local.xml
78org/unicode/cldr/cldr-api/0.1-SNAPSHOT/maven-metadata-local.xml
79org/unicode/cldr/cldr-api/0.1-SNAPSHOT/cldr-api-0.1-SNAPSHOT.pom
80org/unicode/cldr/cldr-api/0.1-SNAPSHOT/cldr-api-0.1-SNAPSHOT.jar
81
82Finally, if you choose to update the version number of the snapshot, then also
83update all the the pom.xml files which reference it (but this is unlikely to be
84necessary).
85
86Troubleshooting
87---------------
88
89While the Maven system should keep the CLDR JAR up to date, there is a chance
90that you may have an out of date JAR installed elsewhere. If you have any
91issues with the JAR not being the expected version (e.g. after making changes)
92then run the above "purge" step again, from this directory.
93
94This should re-resolve the current JAR snapshot from the repository in this
95directory. Having purged the Maven cache, next time you build a project, you
96should see something like:
97
98[exec] Downloading from <xxx>: <url>/org/unicode/cldr/cldr-api/0.1-SNAPSHOT/maven-metadata.xml
99[exec] [INFO] Building jar: <path-to-icu-root>/tools/cldr/cldr-to-icu/target/cldr-to-icu-1.0-SNAPSHOT-jar-with-dependencies.jar
100
101This shows that it has had to re-fetch the JAR file.
102