| <?xml version="1.0"?> |
| <!-- |
| * © 2016 and later: Unicode, Inc. and others. |
| * License & terms of use: http://www.unicode.org/copyright.html |
| ******************************************************************************* |
| * Copyright (C) 2010-2016, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| --> |
| <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"> |
| |
| <parent> |
| <groupId>com.ibm.icu</groupId> |
| <artifactId>icu4j-root</artifactId> |
| <version>73.1-SNAPSHOT</version> |
| <!-- default relativePath for parent --> |
| </parent> |
| |
| <modelVersion>4.0.0</modelVersion> |
| |
| <groupId>com.ibm.icu</groupId> |
| <artifactId>icu4j</artifactId> |
| <version>73.1-SNAPSHOT</version> |
| |
| <packaging>jar</packaging> |
| |
| <name>ICU4J</name> |
| <description>International Component for Unicode for Java (ICU4J) is a mature, widely used Java library providing Unicode and Globalization support</description> |
| |
| <build> |
| <plugins> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-compiler-plugin</artifactId> |
| </plugin> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>build-helper-maven-plugin</artifactId> |
| <executions> |
| |
| <!-- add directories with main executable code --> |
| <execution> |
| <id>add-source</id> |
| <goals> |
| <goal>add-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>../../main/classes/collate/src</source> |
| <source>../../main/classes/core/src</source> |
| <source>../../main/classes/currdata/src</source> |
| <source>../../main/classes/langdata/src</source> |
| <source>../../main/classes/regiondata/src</source> |
| <source>../../main/classes/translit/src</source> |
| </sources> |
| </configuration> |
| </execution> |
| |
| <!-- add directories with test code --> |
| <execution> |
| <id>add-test-source</id> |
| <goals> |
| <goal>add-test-source</goal> |
| </goals> |
| <configuration> |
| <sources> |
| <source>../../main/tests/collate/src</source> |
| <source>../../main/tests/core/src</source> |
| <source>../../main/tests/framework/src</source> |
| <source>../../main/tests/packaging/src</source> |
| <source>../../main/tests/translit/src</source> |
| <source>../../tools/misc/src</source> |
| </sources> |
| </configuration> |
| </execution> |
| |
| <!-- add directories with main executable resources --> |
| <execution> |
| <id>add-resource</id> |
| <goals> |
| <goal>add-resource</goal> |
| </goals> |
| <configuration> |
| <resources> |
| <resource> |
| <directory>../../main/classes/collate/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/classes/core/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/classes/currdata/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/classes/langdata/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/classes/regiondata/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/classes/translit/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| |
| <!-- add directories with test resources --> |
| <execution> |
| <id>add-test-resource</id> |
| <goals> |
| <goal>add-test-resource</goal> |
| </goals> |
| <configuration> |
| <resources> |
| <resource> |
| <directory>../../main/tests/collate/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/tests/core/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/tests/framework/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/tests/packaging/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../main/tests/translit/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| <resource> |
| <directory>../../tools/misc/src</directory> |
| <excludes> |
| <exclude>**/*.java</exclude> |
| </excludes> |
| </resource> |
| </resources> |
| </configuration> |
| </execution> |
| |
| |
| </executions> |
| </plugin> |
| |
| <!-- |
| Extract the resource files from the icu4j-datafiles dependency so that it is available during `test`. |
| Note: The extraction here will not result in these files being included in the packaged jar. |
| --> |
| <plugin> |
| <artifactId>maven-remote-resources-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>process-remote-resources</id> |
| <goals> |
| <goal>process</goal> |
| </goals> |
| <configuration> |
| <resourceBundles> |
| <resourceBundle>com.ibm.icu:icu4j-datafiles:${icu4j.version}</resourceBundle> |
| </resourceBundles> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- |
| Extract and unpack the *.res files from the *.jar files in the upstream depenendency `com.ibm.icu:icu4j-datafiles`. |
| Enables the creation of *.lst files in the next phase using the helper script. |
| Use the ./target/classes directory as the output directory so that the files (included generated *.lst files) |
| get included in the shaded .jar file. |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-dependency-plugin</artifactId> |
| <executions> |
| <execution> |
| <id>unpack-dependencies</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>unpack-dependencies</goal> |
| </goals> |
| <configuration> |
| <includeGroupIds>com.ibm.icu</includeGroupIds> |
| <!-- exclude test resource files which come through dependencies as `provided` scope --> |
| <excludeScope>provided</excludeScope> |
| <excludes>**/*.cnv,**/cnvalias.icu,**/*.jar</excludes> |
| <outputDirectory>${project.build.directory}/classes</outputDirectory> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- |
| Process and transform the resource files before they get packaged up in the .jar file. |
| --> |
| <plugin> |
| <groupId>org.codehaus.mojo</groupId> |
| <artifactId>exec-maven-plugin</artifactId> |
| <executions> |
| <!-- |
| Replicate the creation of fullLocaleNames.lst files in every subdirectory of the dir of copied data |
| that the Ant build.xml file encodes. |
| --> |
| <execution> |
| <id>full-locale-names</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <executable>./file-listing-helper.sh</executable> |
| </configuration> |
| </execution> |
| <!-- Copy the license file. --> |
| <execution> |
| <id>copy-license-file</id> |
| <phase>prepare-package</phase> |
| <goals> |
| <goal>exec</goal> |
| </goals> |
| <configuration> |
| <executable>cp</executable> |
| <arguments> |
| <argument>../../../icu4c/LICENSE</argument> |
| <argument>${project.build.directory}/classes</argument> |
| </arguments> |
| </configuration> |
| </execution> |
| </executions> |
| </plugin> |
| |
| <!-- |
| Enable configuration of the Manifest file, etc. during the process of packaging the .jar file. |
| |
| For future reference: https://stackoverflow.com/questions/38548271/difference-between-maven-plugins-assembly-plugins-jar-plugins-shaded-plugi |
| --> |
| <plugin> |
| <groupId>org.apache.maven.plugins</groupId> |
| <artifactId>maven-jar-plugin</artifactId> |
| <configuration> |
| <archive> |
| <manifestEntries> |
| |
| <X-Compile-Source-JDK>${maven.compiler.source}</X-Compile-Source-JDK> |
| <X-Compile-Target-JDK>${maven.compiler.target}</X-Compile-Target-JDK> |
| |
| <Specification-Title>${jar.spec.title}</Specification-Title> |
| <Specification-Version>${jar.spec.version}</Specification-Version> |
| <Specification-Vendor>${jar.spec.vendor}</Specification-Vendor> |
| |
| <Implementation-Title>${jar.impl.title}</Implementation-Title> |
| <Implementation-Version>${jar.impl.version}</Implementation-Version> |
| <Implementation-Vendor>${jar.impl.vendor}</Implementation-Vendor> |
| <Implementation-Vendor-Id>${jar.impl.vendor.id}</Implementation-Vendor-Id> |
| |
| <Bundle-ManifestVersion>${jar.manifest.version}</Bundle-ManifestVersion> |
| <Bundle-Name>${jar.name}</Bundle-Name> |
| <Bundle-Description>${jar.description}</Bundle-Description> |
| <Bundle-SymbolicName>${jar.symbolic.name}</Bundle-SymbolicName> |
| <Bundle-Version>${jar.version}</Bundle-Version> |
| <Bundle-Vendor>${jar.vendor}</Bundle-Vendor> |
| <Bundle-Copyright>${jar.copyright.info}</Bundle-Copyright> |
| |
| <!-- TODO: We should remove this, right??? --> |
| <Main-Class>${jar.main.class}</Main-Class> |
| |
| </manifestEntries> |
| </archive> |
| </configuration> |
| <executions> |
| <execution> |
| <goals> |
| <goal>test-jar</goal> |
| </goals> |
| </execution> |
| </executions> |
| </plugin> |
| |
| </plugins> |
| </build> |
| |
| <dependencies> |
| |
| <dependency> |
| <groupId>com.ibm.icu</groupId> |
| <artifactId>icu4j-datafiles</artifactId> |
| </dependency> |
| |
| <dependency> |
| <groupId>com.ibm.icu</groupId> |
| <artifactId>icu4j-test-datafiles</artifactId> |
| <scope>provided</scope> |
| </dependency> |
| |
| <dependency> |
| <groupId>junit</groupId> |
| <artifactId>junit</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| <!-- this is for parameterized JUnit tests --> |
| <dependency> |
| <groupId>pl.pragmatists</groupId> |
| <artifactId>JUnitParams</artifactId> |
| <scope>test</scope> |
| </dependency> |
| |
| </dependencies> |
| |
| </project> |