123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License. See accompanying LICENSE file.
- -->
- <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
- https://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-project</artifactId>
- <version>3.5.0-SNAPSHOT</version>
- <relativePath>../hadoop-project</relativePath>
- </parent>
- <artifactId>hadoop-project-dist</artifactId>
- <version>3.5.0-SNAPSHOT</version>
- <description>Apache Hadoop Project Dist POM</description>
- <name>Apache Hadoop Project Dist POM</name>
- <packaging>pom</packaging>
- <properties>
- <hadoop.tmp.dir>${project.build.directory}/test</hadoop.tmp.dir>
- <test.build.data>${project.build.directory}/test/data</test.build.data>
- <hadoop.log.dir>${project.build.directory}/log</hadoop.log.dir>
- <test.build.webapps>${project.build.directory}/test-classes/webapps</test.build.webapps>
- <test.cache.data>${project.build.directory}/test-classes</test.cache.data>
- <test.build.classes>${project.build.directory}/test-classes</test.build.classes>
- <hadoop.component>UNDEF</hadoop.component>
- <snappy.lib></snappy.lib>
- <bundle.snappy>false</bundle.snappy>
- <zstd.lib></zstd.lib>
- <bundle.zstd>false</bundle.zstd>
- <bundle.zstd.in.bin>false</bundle.zstd.in.bin>
- <isal.lib></isal.lib>
- <bundle.isal>false</bundle.isal>
- <openssl.lib></openssl.lib>
- <bundle.openssl>false</bundle.openssl>
- <bundle.openssl.in.bin>false</bundle.openssl.in.bin>
- </properties>
- <dependencies>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-annotations</artifactId>
- <scope>provided</scope>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <executions>
- <execution>
- <id>prepare-jar</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- <execution>
- <id>prepare-test-jar</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>test-jar</goal>
- </goals>
- <configuration>
- <includes>
- <include>**/*.class</include>
- <include>webapps/**</include>
- <include>META-INF/LICENSE.txt</include>
- <include>META-INF/NOTICE.txt</include>
- </includes>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>com.github.spotbugs</groupId>
- <artifactId>spotbugs-maven-plugin</artifactId>
- <configuration>
- <excludeFilterFile>${basedir}/dev-support/findbugsExcludeFile.xml</excludeFilterFile>
- <maxHeap>2048</maxHeap>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <maxmemory>768m</maxmemory>
- <quiet>true</quiet>
- <verbose>false</verbose>
- <source>${maven.compile.source}</source>
- <charset>${maven.compile.encoding}</charset>
- <reportOutputDirectory>${project.build.directory}/site</reportOutputDirectory>
- <destDir>${destDirPath}</destDir>
- <groups>
- <group>
- <title>${project.name} API</title>
- <packages>org.apache.hadoop*</packages>
- </group>
- </groups>
- <!-- switch on dependency-driven aggregation -->
- <includeDependencySources>false</includeDependencySources>
- <dependencySourceIncludes>
- <!-- include ONLY dependencies I control -->
- <dependencySourceInclude>org.apache.hadoop:hadoop-annotations</dependencySourceInclude>
- </dependencySourceIncludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
- <profiles>
- <profile>
- <id>docs</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <properties>
- <jdiff.stable.api>3.3.6</jdiff.stable.api>
- <jdiff.stability>-unstable</jdiff.stability>
- <!-- Commented out for HADOOP-11776 -->
- <!-- Uncomment param name="${jdiff.compatibility}" in javadoc doclet if compatibility is not empty -->
- <jdiff.compatibility></jdiff.compatibility>
- <jdiff.javadoc.maxmemory>512m</jdiff.javadoc.maxmemory>
- </properties>
- <dependencies>
- <dependency>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- <version>${xerces.jdiff.version}</version>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <executions>
- <execution>
- <goals>
- <goal>javadoc-no-fork</goal>
- </goals>
- <phase>prepare-package</phase>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-dependency-plugin</artifactId>
- <executions>
- <execution>
- <id>site</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>jdiff</groupId>
- <artifactId>jdiff</artifactId>
- <version>${jdiff.version}</version>
- <overWrite>false</overWrite>
- <outputDirectory>${project.build.directory}</outputDirectory>
- <destFileName>jdiff.jar</destFileName>
- </artifactItem>
- <artifactItem>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-annotations</artifactId>
- <version>${project.version}</version>
- <overWrite>false</overWrite>
- <outputDirectory>${project.build.directory}</outputDirectory>
- <destFileName>hadoop-annotations.jar</destFileName>
- </artifactItem>
- <artifactItem>
- <groupId>xerces</groupId>
- <artifactId>xercesImpl</artifactId>
- <version>${xerces.jdiff.version}</version>
- <overWrite>false</overWrite>
- <outputDirectory>${project.build.directory}</outputDirectory>
- <destFileName>xerces.jar</destFileName>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>choose-javadoc-dest-dir</id>
- <phase>validate</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <exportAntProperties>true</exportAntProperties>
- <target>
- <!-- destDirPath is where the generated Javadocs will be located.
- The value of destDirPath obtained below is used for the "destDir" attribute
- in the maven-javadoc-plugin in this pom.xml.
- As per HADOOP-8500 and HADOOP-13784, we wanted to dump the javadoc into an
- "api" directory that was outside the "site" directory.
- Unfortunately, maven-javadoc-plugin doesn't give us a way to do that since
- "destDir" is always appended to "reportOutputDirectory". While we can achieve
- this using the relative path "../api", it only works for Windows. But it fails
- on Linux since the parent directory of "../api" wouldn't yet exist and the
- path resolution fails.
- Thus, we're going to leverage this approach for Windows and leave the
- behaviour on Linux intact.-->
- <condition property="destDirPath" value="../api" else="${project.build.directory}/api">
- <and>
- <os family="windows"/>
- </and>
- </condition>
- <echo>destDirPath to use for maven-javadoc-plugin = ${destDirPath}</echo>
- </target>
- </configuration>
- </execution>
- <!-- Pre site -->
- <execution>
- <id>pre-site</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target if="is.hadoop.common.component">
- <!-- HADOOP-13428: This is for workaround issues of JDiff
- - https://sourceforge.net/p/javadiff/bugs/19/ -->
- <exec executable="patch" input="dev-support/jdiff-workaround.patch" dir="${basedir}">
- <arg value="-p3"/>
- </exec>
- </target>
- </configuration>
- </execution>
- <execution>
- <id>site</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target if="is.hadoop.component">
- <mkdir dir="${project.build.directory}/docs-src"/>
- <!-- Docs -->
- <style basedir="${basedir}/src/main/resources"
- destdir="${project.build.directory}/site"
- includes="core-default.xml"
- style="${basedir}/src/main/xsl/configuration.xsl"/>
- <!-- Jdiff -->
- <mkdir dir="${project.build.directory}/site/jdiff/xml"/>
- <javadoc maxmemory="${jdiff.javadoc.maxmemory}" verbose="yes">
- <doclet name="org.apache.hadoop.classification.tools.IncludePublicAnnotationsJDiffDoclet"
- path="${project.build.directory}/hadoop-annotations.jar:${project.build.directory}/jdiff.jar">
- <param name="-apidir" value="${project.build.directory}/site/jdiff/xml"/>
- <param name="-apiname" value="${project.name} ${project.version}"/>
- <param name="${jdiff.stability}"/>
- </doclet>
- <packageset dir="${basedir}/src/main/java"/>
- <classpath>
- <path refid="maven.compile.classpath"/>
- </classpath>
- </javadoc>
- <javadoc sourcepath="${basedir}/src/main/java"
- destdir="${project.build.directory}/site/jdiff/xml"
- sourceFiles="${basedir}/dev-support/jdiff/Null.java"
- maxmemory="${jdiff.javadoc.maxmemory}">
- <doclet name="org.apache.hadoop.classification.tools.IncludePublicAnnotationsJDiffDoclet"
- path="${project.build.directory}/hadoop-annotations.jar:${project.build.directory}/jdiff.jar:${project.build.directory}/xerces.jar">
- <param name="-oldapi" value="${project.name} ${jdiff.stable.api}"/>
- <param name="-newapi" value="${project.name} ${project.version}"/>
- <param name="-oldapidir" value="${basedir}/dev-support/jdiff"/>
- <param name="-newapidir" value="${project.build.directory}/site/jdiff/xml"/>
- <param name="-javadocold"
- value="https://hadoop.apache.org/docs/r${jdiff.stable.api}/api/"/>
- <param name="-javadocnew" value="${project.build.directory}/site/api"/>
- <param name="-stats"/>
- <param name="${jdiff.stability}"/>
- <!--param name="${jdiff.compatibility}"/-->
- </doclet>
- <classpath>
- <path refid="maven.compile.classpath"/>
- </classpath>
- </javadoc>
- </target>
- </configuration>
- </execution>
- <!-- post site phase -->
- <execution>
- <id>post-site</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target if="is.hadoop.common.component">
- <!-- HADOOP-13428: Revert temporary patch-->
- <exec executable="patch" input="dev-support/jdiff-workaround.patch" dir="${basedir}">
- <arg value="-p3"/>
- <arg value="-R"/>
- </exec>
- </target>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>dist</id>
- <activation>
- <activeByDefault>false</activeByDefault>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>exec-maven-plugin</artifactId>
- <version>${exec-maven-plugin.version}</version>
- <executions>
- <execution>
- <id>pre-dist</id>
- <phase>prepare-package</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <executable>${shell-executable}</executable>
- <workingDirectory>${project.build.directory}</workingDirectory>
- <arguments>
- <argument>${project.parent.basedir}/../dev-support/bin/dist-copynativelibs</argument>
- <argument>--version=${project.version}</argument>
- <argument>--builddir=${project.build.directory}</argument>
- <argument>--artifactid=${project.artifactId}</argument>
- <argument>--isalbundle=${bundle.isal}</argument>
- <argument>--isallib=${isal.lib}</argument>
- <argument>--openssllib=${openssl.lib}</argument>
- <argument>--opensslbinbundle=${bundle.openssl.in.bin}</argument>
- <argument>--openssllibbundle=${bundle.openssl}</argument>
- <argument>--snappylib=${snappy.lib}</argument>
- <argument>--snappylibbundle=${bundle.snappy}</argument>
- <argument>--zstdbinbundle=${bundle.zstd.in.bin}</argument>
- <argument>--zstdlib=${zstd.lib}</argument>
- <argument>--zstdlibbundle=${bundle.zstd}</argument>
- </arguments>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <executions>
- <execution>
- <id>tar</id>
- <phase>package</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <target if="tar">
- <!-- Using Unix script to preserve symlinks -->
- <echo file="${project.build.directory}/dist-maketar.sh">
- cd "${project.build.directory}"
- tar cf - ${project.artifactId}-${project.version} | gzip > ${project.artifactId}-${project.version}.tar.gz
- </echo>
- <exec executable="${shell-executable}" dir="${project.build.directory}" failonerror="true">
- <arg line="./dist-maketar.sh"/>
- </exec>
- </target>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-assemblies</artifactId>
- <version>${hadoop.version}</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <id>dist</id>
- <phase>package</phase>
- <goals>
- <goal>single</goal>
- </goals>
- <configuration>
- <appendAssemblyId>false</appendAssemblyId>
- <attach>false</attach>
- <finalName>${project.artifactId}-${project.version}</finalName>
- <descriptorRefs>
- <descriptorRef>hadoop-dist</descriptorRef>
- </descriptorRefs>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>doclet</id>
- <activation>
- <jdk>(,10)</jdk>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <configuration>
- <doclet>org.apache.hadoop.classification.tools.ExcludePrivateAnnotationsStandardDoclet</doclet>
- <docletArtifacts>
- <docletArtifact>
- <groupId>org.apache.hadoop</groupId>
- <artifactId>hadoop-annotations</artifactId>
- <version>${hadoop.version}</version>
- </docletArtifact>
- </docletArtifacts>
- <useStandardDocletOptions>true</useStandardDocletOptions>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
- </project>
|