| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
| <modelVersion>4.0.0</modelVersion> |
| |
| <groupId>org.unicode.unicodetools</groupId> |
| <artifactId>unicodetools-parent</artifactId> |
| <version>1.0.0</version> |
| <name>Parent of Unicode Tools</name> |
| <packaging>pom</packaging> |
| <licenses> |
| <license> |
| <name>Unicode-3.0</name> |
| </license> |
| </licenses> |
| |
| |
| <url>https://unicode-org.github.io/unicodetools/</url> |
| |
| <scm> |
| <connection>scm:git:https://github.com/unicode-org/unicodetools.git</connection> |
| </scm> |
| |
| <properties> |
| <!-- |
| For ICU versions, see https://github.com/orgs/unicode-org/packages?repo_name=icu |
| Note that we can't use the general ICU maven packages, because utilities isn't exported (yet). |
| --> |
| <icu.version>76.0.1-SNAPSHOT</icu.version> |
| |
| <!-- |
| For CLDR versions, see https://github.com/orgs/unicode-org/packages?repo_name=cldr |
| --> |
| <cldr.version>0.0.0-SNAPSHOT-880c12f291</cldr.version> |
| |
| |
| <!-- these two set the JDK version for source and target --> |
| <maven.compiler.source>11</maven.compiler.source> |
| <maven.compiler.target>11</maven.compiler.target> |
| |
| <!-- Good hygiene. This is Unicode after all! --> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| |
| <!-- Fix the JUnit version --> |
| <junit-version>5.7.2</junit-version> |
| <!-- Need to use an updated surefire plugin here. --> |
| <maven-surefire-plugin-version>3.0.0-M5</maven-surefire-plugin-version> |
| |
| <spotless.version>2.43.0</spotless.version> |
| </properties> |
| |
| <modules> |
| <module>unicodetools-testutils</module> |
| <module>unicodetools</module> |
| <module>UnicodeJsps</module> |
| </modules> |
| |
| <dependencyManagement> |
| <dependencies> |
| |
| <dependency> |
| <groupId>org.unicode.unicodetools</groupId> |
| <artifactId>unicodetools</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| |
| <!-- icu --> |
| <dependency> |
| <groupId>com.ibm.icu</groupId> |
| <artifactId>icu4j</artifactId> |
| <version>${icu.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.ibm.icu</groupId> |
| <artifactId>utilities-for-cldr</artifactId> |
| <version>${icu.version}</version> |
| </dependency> |
| <!-- cldr --> |
| <dependency> |
| <groupId>org.unicode.cldr</groupId> |
| <artifactId>cldr-code</artifactId> |
| <version>${cldr.version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.junit.jupiter</groupId> |
| <artifactId>junit-jupiter</artifactId> |
| <version>${junit-version}</version> |
| </dependency> |
| |
| <dependency> |
| <groupId>org.unicode.unicodetools</groupId> |
| <artifactId>unicodetools-testutils</artifactId> |
| <version>${project.version}</version> |
| </dependency> |
| </dependencies> |
| </dependencyManagement> |
| <build> |
| <pluginManagement> |
| <plugins> |
| <plugin> |
| <artifactId>maven-surefire-plugin</artifactId> |
| <version>${maven-surefire-plugin-version}</version> |
| <configuration> |
| <systemPropertyVariables> |
| <!-- These are variables which are picked up by test runs --> |
| <UVERSION>13.0.0</UVERSION> |
| <CLDR_ENVIRONMENT>UNITTEST</CLDR_ENVIRONMENT> |
| <java.awt.headless>true</java.awt.headless> |
| <UNICODETOOLS_REPO_DIR>${project.basedir}/..</UNICODETOOLS_REPO_DIR> |
| <!-- sibling of unicodetools--> |
| <UNICODETOOLS_GEN_DIR>${project.basedir}/../Generated</UNICODETOOLS_GEN_DIR> |
| </systemPropertyVariables> |
| <argLine>-Xmx10g -enableassertions</argLine> |
| </configuration> |
| </plugin> |
| <plugin> |
| <artifactId>maven-failsafe-plugin</artifactId> |
| <version>${maven-surefire-plugin-version}</version> |
| </plugin> |
| <!-- |
| Spotless info: |
| - How to preview what `mvn spotless:apply` will do: https://github.com/diffplug/spotless/tree/main/plugin-maven#how-do-i-preview-what-mvn-spotlessapply-will-do |
| - Apply Spotless to specific files: https://github.com/diffplug/spotless/tree/main/plugin-maven#can-i-apply-spotless-to-specific-files |
| --> |
| <plugin> |
| <groupId>com.diffplug.spotless</groupId> |
| <artifactId>spotless-maven-plugin</artifactId> |
| <version>${spotless.version}</version> |
| <configuration> |
| <!-- optional: limit format enforcement to just the files changed by this feature branch --> |
| <!-- You can explicitly disable ratchet functionality by providing the value 'NONE': --> |
| <ratchetFrom>NONE</ratchetFrom> |
| <!-- define a language-specific format --> |
| <java> |
| <!-- no need to specify files, inferred automatically, but you can if you want --> |
| <!-- apply a specific flavor of google-java-format and reflow long strings --> |
| <googleJavaFormat> |
| <!-- version of google-java-style, see |
| https://mvnrepository.com/artifact/com.google.googlejavaformat/google-java-format --> |
| <version>1.22.0</version> |
| <style>AOSP</style> |
| <reflowLongStrings>false</reflowLongStrings> |
| </googleJavaFormat> |
| </java> |
| </configuration> |
| </plugin> |
| <!-- |
| We need to tell exec:java to not try run commands from the root/parent pom.xml because |
| the structure of the project as a multi-module one means there is no source code to be |
| found here to be compiled and run. |
| Instead, we should explicitly override this setting in the submodules in which we know |
| we need to run exec:java. We do so with a similar <build> -> <plugins> -> <plugin> entry |
| that contains `<skip>false</skip>` in the pom.xml. |
| See comments in this answer: https://stackoverflow.com/a/26448447/2077918 |
| |
| If we ever need to have more fine-grained customziation of which submodules should skip |
| (or not) the `exec:java` execution, then we might need to use profiles to configure which |
| submodules are skipping / not skipping `exec:java` for a particular execution, as described |
| in a sibling answer: https://stackoverflow.com/a/8098019/2077918 |
| --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <version>1.3.2</version> |
| <configuration> |
| <skip>true</skip> |
| <executable>java</executable> |
| </configuration> |
| </plugin> |
| </plugins> |
| </pluginManagement> |
| </build> |
| <repositories> |
| <repository> |
| <id>githubicu</id> |
| <name>GitHub unicode-org/icu Apache Maven Packages</name> |
| <url>https://maven.pkg.github.com/unicode-org/icu</url> |
| </repository> |
| <repository> |
| <id>githubcldr</id> |
| <name>GitHub unicode-org/cldr Apache Maven Packages</name> |
| <url>https://maven.pkg.github.com/unicode-org/cldr</url> |
| </repository> |
| </repositories> |
| </project> |