| <?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 |
| or use vanilla *released* ICU versions like 76.1 which come from Maven Central. |
| --> |
| <icu.version>79.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-701ee9696a</cldr.version> |
| |
| |
| <!-- Set the JDK version --> |
| <maven.compiler.release>21</maven.compiler.release> |
| |
| <!-- Good hygiene. This is Unicode after all! --> |
| <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
| <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> |
| |
| <!-- |
| To see what updates are available: |
| mvn versions:display-property-updates | grep " -> " | sort -u |
| To update all versions properties: |
| mvn versions:update-properties -DgenerateBackupPoms=false |
| To update a specific version property (in this example exec-maven-plugin.version): |
| mvn versions:update-property -DgenerateBackupPoms=false -Dproperty=exec-maven-plugin.version |
| --> |
| |
| <!-- Dependencies versions --> |
| <gson.version>2.8.9</gson.version> |
| <guava.version>32.0.0-jre</guava.version> |
| <jakarta.servlet.jsp-api.version>4.0.0</jakarta.servlet.jsp-api.version> |
| <jakarta.servlet.version>6.1.0</jakarta.servlet.version> |
| <!-- Fix the JUnit version to 5.*. Search for <rule> to change major number. --> |
| <junit.version>5.14.4</junit.version> |
| <org.owasp.encoder.version>1.2.3</org.owasp.encoder.version> |
| <!-- Dependencies versions - END --> |
| |
| <!-- Plugin versions --> |
| <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version> |
| <buildnumber-maven-plugin.version>1.4</buildnumber-maven-plugin.version> |
| <exec-maven-plugin.version>3.6.3</exec-maven-plugin.version> |
| <google-java-format.version>1.35.0</google-java-format.version> |
| <jetty-maven-plugin.version>11.0.26</jetty-maven-plugin.version> |
| <maven-surefire-plugin-version>3.5.5</maven-surefire-plugin-version> |
| <org.apache.maven.plugins.version>3.2.3</org.apache.maven.plugins.version> |
| <spotless-maven-plugin.version>3.4.0</spotless-maven-plugin.version> |
| <versions-maven-plugin.version>2.21.0</versions-maven-plugin.version> |
| <xml-maven-plugin.version>1.1.0</xml-maven-plugin.version> |
| <!-- Plugin versions - END --> |
| </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> |
| <!-- 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> |
| <!-- Multiple JVM processes in parallel. --> |
| <!-- Turned off: Currently makes tests flaky :-( |
| https://github.com/unicode-org/unicodetools/pull/1368#issuecomment-4371865240 --> |
| <forkCount>1</forkCount> |
| <!-- https://maven.apache.org/surefire/maven-surefire-plugin/examples/fork-options-and-parallel-execution.html --> |
| <systemPropertyVariables> |
| <!-- These are variables which are picked up by test runs --> |
| <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-maven-plugin.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>${google-java-format.version}</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>${exec-maven-plugin.version}</version> |
| <configuration> |
| <skip>true</skip> |
| <executable>java</executable> |
| </configuration> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>versions-maven-plugin</artifactId> |
| <version>${versions-maven-plugin.version}</version> |
| <configuration> |
| <!-- https://www.mojohaus.org/versions/versions-maven-plugin/version-rules.html#Using_the_ruleSet_element_in_the_POM --> |
| <ruleSet> |
| <ignoreVersions> |
| <ignoreVersion> |
| <type>regex</type> |
| <version>.+-(alpha|beta|rc|RC|M\d).*</version> |
| </ignoreVersion> |
| </ignoreVersions> |
| <rule> |
| <!-- Restricts the groupId for the rule. |
| We don't want to inadvertedly update the major version of junit. |
| But we still want to see the updates for version 5. |
| --> |
| <groupId>org.junit.jupiter</groupId> |
| <ignoreVersions> |
| <ignoreVersion> |
| <type>range</type> |
| <version>[6.0,)</version> |
| </ignoreVersion> |
| </ignoreVersions> |
| </rule> |
| </ruleSet> |
| </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> |