HADOOP-5107. Use Maven ant tasks to publish the subproject jars.

(Giridharan Kesavan via omalley)


git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@831032 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Owen O'Malley 2009-10-29 17:08:42 +00:00
parent f9dee28085
commit f0f3fdbd3d
10 changed files with 493 additions and 177 deletions

3
.gitignore vendored
View File

@ -32,7 +32,8 @@ conf/hadoop-policy.xml
conf/capacity-scheduler.xml conf/capacity-scheduler.xml
conf/mapred-queue-acls.xml conf/mapred-queue-acls.xml
docs/api/ docs/api/
ivy/ivy-2.0.0-rc2.jar ivy/ivy-*.jar
ivy/maven-ant-tasks-*.jar
logs/ logs/
src/contrib/ec2/bin/hadoop-ec2-env.sh src/contrib/ec2/bin/hadoop-ec2-env.sh
src/docs/build src/docs/build

View File

@ -505,8 +505,8 @@ Release 0.21.0 - Unreleased
TestNameEditsConfig, TestStartup and TestStorageRestore. TestNameEditsConfig, TestStartup and TestStorageRestore.
(Jakob Homan via shv) (Jakob Homan via shv)
HADOOP-5438. Provide a single FileSystem method to create or open-for-append HADOOP-5438. Provide a single FileSystem method to create or
to a file. (He Yongqiang via dhruba) open-for-append to a file. (He Yongqiang via dhruba)
HADOOP-5472. Change DistCp to support globbing of input paths. (Dhruba HADOOP-5472. Change DistCp to support globbing of input paths. (Dhruba
Borthakur and Rodrigo Schmidt via szetszwo) Borthakur and Rodrigo Schmidt via szetszwo)
@ -579,7 +579,8 @@ Release 0.21.0 - Unreleased
HADOOP-6160. Fix releaseaudit target to run on specific directories. HADOOP-6160. Fix releaseaudit target to run on specific directories.
(gkesavan) (gkesavan)
HADOOP-6169. Removing deprecated method calls in TFile. (hong tang via mahadev) HADOOP-6169. Removing deprecated method calls in TFile. (hong tang via
mahadev)
HADOOP-6176. Add a couple package private methods to AccessTokenHandler HADOOP-6176. Add a couple package private methods to AccessTokenHandler
for testing. (Kan Zhang via szetszwo) for testing. (Kan Zhang via szetszwo)
@ -628,6 +629,9 @@ Release 0.21.0 - Unreleased
HADOOP-6329. Add build-fi directory to the ignore lists. (szetszwo) HADOOP-6329. Add build-fi directory to the ignore lists. (szetszwo)
HADOOP-5107. Use Maven ant tasks to publish the subproject jars.
(Giridharan Kesavan via omalley)
OPTIMIZATIONS OPTIMIZATIONS
HADOOP-5595. NameNode does not need to run a replicator to choose a HADOOP-5595. NameNode does not need to run a replicator to choose a

201
build.xml
View File

@ -18,7 +18,8 @@
--> -->
<project name="Hadoop-Core" default="compile" <project name="Hadoop-Core" default="compile"
xmlns:ivy="antlib:org.apache.ivy.ant"> xmlns:ivy="antlib:org.apache.ivy.ant"
xmlns:artifact="urn:maven-artifact-ant">
<!-- Load all the default properties, and any the user wants --> <!-- Load all the default properties, and any the user wants -->
<!-- to contribute (without having to type -D or edit this file --> <!-- to contribute (without having to type -D or edit this file -->
@ -27,7 +28,7 @@
<property name="Name" value="Hadoop-core"/> <property name="Name" value="Hadoop-core"/>
<property name="name" value="hadoop-core"/> <property name="name" value="hadoop-core"/>
<property name="version" value="0.22.0-dev"/> <property name="version" value="0.22.0-SNAPSHOT"/>
<property name="final.name" value="${name}-${version}"/> <property name="final.name" value="${name}-${version}"/>
<property name="test.final.name" value="${name}-test-${version}"/> <property name="test.final.name" value="${name}-test-${version}"/>
<property name="year" value="2009"/> <property name="year" value="2009"/>
@ -123,10 +124,16 @@
<!-- IVY properteis set here --> <!-- IVY properteis set here -->
<property name="ivy.repo.dir" value="${user.home}/ivyrepo" />
<property name="ivy.dir" location="ivy" /> <property name="ivy.dir" location="ivy" />
<loadproperties srcfile="${ivy.dir}/libraries.properties"/> <loadproperties srcfile="${ivy.dir}/libraries.properties"/>
<property name="asfrepo" value="https://repository.apache.org/content/repositories/snapshots"/>
<property name="mvnrepo" value="http://repo2.maven.org/maven2"/>
<property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/> <property name="ivy.jar" location="${ivy.dir}/ivy-${ivy.version}.jar"/>
<property name="ivy_repo_url" value="http://repo2.maven.org/maven2/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/> <property name="ant_task.jar" location="${ivy.dir}/maven-ant-tasks-${ant-task.version}.jar"/>
<property name="ant_task_repo_url"
value="${mvnrepo}/org/apache/maven/maven-ant-tasks/${ant-task.version}/maven-ant-tasks-${ant-task.version}.jar"/>
<property name="ivy_repo_url" value="${mvnrepo}/org/apache/ivy/ivy/${ivy.version}/ivy-${ivy.version}.jar"/>
<property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml" /> <property name="ivysettings.xml" location="${ivy.dir}/ivysettings.xml" />
<property name="ivy.org" value="org.apache.hadoop"/> <property name="ivy.org" value="org.apache.hadoop"/>
<property name="build.dir" location="build" /> <property name="build.dir" location="build" />
@ -136,15 +143,18 @@
<property name="common.ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}/common"/> <property name="common.ivy.lib.dir" location="${build.ivy.lib.dir}/${ant.project.name}/common"/>
<property name="build.ivy.report.dir" location="${build.ivy.dir}/report"/> <property name="build.ivy.report.dir" location="${build.ivy.dir}/report"/>
<property name="build.ivy.maven.dir" location="${build.ivy.dir}/maven"/> <property name="build.ivy.maven.dir" location="${build.ivy.dir}/maven"/>
<property name="build.ivy.maven.pom" location="${build.ivy.maven.dir}/hadoop-core-${version}.pom" /> <property name="pom.xml" location="${build.ivy.maven.dir}/pom.xml"/>
<property name="build.ivy.maven.jar" location="${build.ivy.maven.dir}/hadoop-core-${version}.jar" /> <property name="hadoop-core.pom" location="${ivy.dir}/hadoop-core.xml"/>
<property name="build.ivy.maven.core.jar" location="${build.ivy.maven.dir}/hadoop-core-${version}.jar"/>
<property name="hadoop-core-test.pom" location="${ivy.dir}/hadoop-core-test.xml" />
<property name="build.ivy.maven.core-test.jar" location="${build.ivy.maven.dir}/hadoop-core-test-${version}.jar"/>
<!--this is the naming policy for artifacts we want pulled down--> <!--this is the naming policy for artifacts we want pulled down-->
<property name="ivy.module" location="hadoop-core" /> <property name="ivy.module" location="hadoop-core" />
<property name="ivy.artifact.retrieve.pattern" value="${ant.project.name}/[conf]/[artifact]-[revision].[ext]"/> <property name="ivy.artifact.retrieve.pattern" value="${ant.project.name}/[conf]/[artifact]-[revision].[ext]"/>
<!--this is how artifacts that get built are named--> <!--this is how artifacts that get built are named-->
<property name="ivy.publish.pattern" value="hadoop-core-[revision].[ext]"/> <property name="ivy.publish.pattern" value="[artifact]-[revision].[ext]"/>
<property name="hadoop-core.jar" location="${build.dir}/${final.name}.jar" /> <property name="hadoop-core.jar" location="${build.dir}/${final.name}.jar" />
<property name="hadoop-core-test.jar" location="${build.dir}/${test.final.name}.jar" /> <property name="hadoop-core-test.jar" location="${build.dir}/${test.final.name}.jar" />
@ -365,7 +375,7 @@
</target> </target>
<target name="compile-contrib" depends="compile-core"> <target name="compile-contrib" depends="compile-core">
<subant target="compile"> <subant target="compile" inheritall="true">
<property name="version" value="${version}"/> <property name="version" value="${version}"/>
<fileset file="${contrib.dir}/build.xml"/> <fileset file="${contrib.dir}/build.xml"/>
</subant> </subant>
@ -647,7 +657,7 @@
</target> </target>
<target name="test-contrib" depends="compile, compile-core-test" description="Run contrib unit tests"> <target name="test-contrib" depends="compile, compile-core-test" description="Run contrib unit tests">
<subant target="test"> <subant target="test" inheritall="true">
<property name="version" value="${version}"/> <property name="version" value="${version}"/>
<property name="clover.jar" value="${clover.jar}"/> <property name="clover.jar" value="${clover.jar}"/>
<fileset file="${contrib.dir}/build.xml"/> <fileset file="${contrib.dir}/build.xml"/>
@ -664,7 +674,7 @@
</target> </target>
<target name="test" depends="jar-test,test-core" description="Run all unit tests"> <target name="test" depends="jar-test,test-core" description="Run all unit tests">
<subant target="test-contrib"> <subant target="test-contrib" inheritall="true">
<fileset dir="." includes="build.xml"/> <fileset dir="." includes="build.xml"/>
</subant> </subant>
</target> </target>
@ -683,7 +693,8 @@
<!-- ================================================================== --> <!-- ================================================================== -->
<!-- Run optional third-party tool targets --> <!-- Run optional third-party tool targets -->
<!-- ================================================================== --> <!-- ================================================================== -->
<target name="checkstyle" depends="ivy-retrieve-checkstyle,check-for-checkstyle" if="checkstyle.present" description="Run optional third-party tool targets"> <target name="checkstyle" depends="ivy-retrieve-checkstyle,check-for-checkstyle" if="checkstyle.present"
description="Run optional third-party tool targets">
<taskdef resource="checkstyletask.properties"> <taskdef resource="checkstyletask.properties">
<classpath refid="checkstyle-classpath"/> <classpath refid="checkstyle-classpath"/>
</taskdef> </taskdef>
@ -751,7 +762,8 @@
<!-- Documentation --> <!-- Documentation -->
<!-- ================================================================== --> <!-- ================================================================== -->
<target name="docs" depends="forrest.check" description="Generate forrest-based documentation. To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line." if="forrest.home"> <target name="docs" depends="forrest.check" description="Generate forrest-based documentation.
To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line." if="forrest.home">
<exec dir="${docs.src}" executable="${forrest.home}/bin/forrest" <exec dir="${docs.src}" executable="${forrest.home}/bin/forrest"
failonerror="true"> failonerror="true">
<env key="JAVA_HOME" value="${java5.home}"/> <env key="JAVA_HOME" value="${java5.home}"/>
@ -766,8 +778,8 @@
<antcall target="cn-docs"/> <antcall target="cn-docs"/>
</target> </target>
<target name="cn-docs" depends="forrest.check, init" <target name="cn-docs" depends="forrest.check, init" description="Generate forrest-based Chinese documentation.
description="Generate forrest-based Chinese documentation. To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line." To use, specify -Dforrest.home=&lt;base of Apache Forrest installation&gt; on the command line."
if="forrest.home"> if="forrest.home">
<exec dir="${src.docs.cn}" executable="${forrest.home}/bin/forrest" failonerror="true"> <exec dir="${src.docs.cn}" executable="${forrest.home}/bin/forrest" failonerror="true">
<env key="LANG" value="en_US.utf8"/> <env key="LANG" value="en_US.utf8"/>
@ -782,11 +794,13 @@
</target> </target>
<target name="forrest.check" unless="forrest.home" depends="java5.check"> <target name="forrest.check" unless="forrest.home" depends="java5.check">
<fail message="'forrest.home' is not defined. Please pass -Dforrest.home=&lt;base of Apache Forrest installation&gt; to Ant on the command-line." /> <fail message="'forrest.home' is not defined. Please pass
-Dforrest.home=&lt;base of Apache Forrest installation&gt; to Ant on the command-line." />
</target> </target>
<target name="java5.check" unless="java5.home"> <target name="java5.check" unless="java5.home">
<fail message="'java5.home' is not defined. Forrest requires Java 5. Please pass -Djava5.home=&lt;base of Java 5 distribution&gt; to Ant on the command-line." /> <fail message="'java5.home' is not defined. Forrest requires Java 5.
Please pass -Djava5.home=&lt;base of Java 5 distribution&gt; to Ant on the command-line." />
</target> </target>
<target name="javadoc-dev" depends="compile, ivy-retrieve-javadoc" description="Generate javadoc for hadoop developers"> <target name="javadoc-dev" depends="compile, ivy-retrieve-javadoc" description="Generate javadoc for hadoop developers">
@ -801,8 +815,7 @@
windowtitle="${Name} ${version} API" windowtitle="${Name} ${version} API"
doctitle="${Name} ${version} Developer API" doctitle="${Name} ${version} Developer API"
bottom="Copyright &amp;copy; ${year} The Apache Software Foundation" bottom="Copyright &amp;copy; ${year} The Apache Software Foundation"
maxmemory="${javadoc.maxmemory}" maxmemory="${javadoc.maxmemory}">
>
<packageset dir="${java.src.dir}"/> <packageset dir="${java.src.dir}"/>
<packageset dir="src/contrib/failmon/src/java/"/> <packageset dir="src/contrib/failmon/src/java/"/>
@ -847,8 +860,7 @@
windowtitle="${Name} ${version} API" windowtitle="${Name} ${version} API"
doctitle="${Name} ${version} API" doctitle="${Name} ${version} API"
bottom="Copyright &amp;copy; ${year} The Apache Software Foundation" bottom="Copyright &amp;copy; ${year} The Apache Software Foundation"
maxmemory="${javadoc.maxmemory}" maxmemory="${javadoc.maxmemory}">
>
<packageset dir="${java.src.dir}"/> <packageset dir="${java.src.dir}"/>
<packageset dir="src/contrib/failmon/src/java/"/> <packageset dir="src/contrib/failmon/src/java/"/>
@ -957,7 +969,7 @@
<arg line="${native.src.dir}/packageNativeHadoop.sh"/> <arg line="${native.src.dir}/packageNativeHadoop.sh"/>
</exec> </exec>
<subant target="package"> <subant target="package" inheritall="true">
<!--Pass down the version in case its needed again and the target <!--Pass down the version in case its needed again and the target
distribution directory so contribs know where to install to.--> distribution directory so contribs know where to install to.-->
<property name="version" value="${version}"/> <property name="version" value="${version}"/>
@ -1057,7 +1069,7 @@
<arg line="${native.src.dir}/packageNativeHadoop.sh"/> <arg line="${native.src.dir}/packageNativeHadoop.sh"/>
</exec> </exec>
<subant target="package"> <subant target="package" inheritall="true">
<!--Pass down the version in case its needed again and the target <!--Pass down the version in case its needed again and the target
distribution directory so contribs know where to install to.--> distribution directory so contribs know where to install to.-->
<property name="version" value="${version}"/> <property name="version" value="${version}"/>
@ -1112,6 +1124,60 @@
</macro_tar> </macro_tar>
</target> </target>
<target name="ant-task-download" description="To download mvn-ant-task" unless="offline">
<get src="${ant_task_repo_url}" dest="${ant_task.jar}" usetimestamp="true"/>
</target>
<target name="mvn-taskdef" depends="ant-task-download">
<path id="mvn-ant-task.classpath" path="${ant_task.jar}"/>
<typedef resource="org/apache/maven/artifact/ant/antlib.xml"
uri="urn:maven-artifact-ant"
classpathref="mvn-ant-task.classpath"/>
</target>
<target name="mvn-install" depends="mvn-taskdef,jar,jar-test,set-version"
description="To install hadoop core and test jars to local filesystem's m2 cache">
<artifact:pom file="${hadoop-core.pom}" id="hadoop.core"/>
<artifact:pom file="${hadoop-core-test.pom}" id="hadoop.core.test"/>
<artifact:install file="${hadoop-core.jar}">
<pom refid="hadoop.core"/>
</artifact:install>
<artifact:install file="${hadoop-core-test.jar}">
<pom refid="hadoop.core.test"/>
</artifact:install>
</target>
<target name="mvn-deploy" depends="mvn-taskdef, jar, jar-test, set-version"
description="To deploy hadoop core and test jar's to apache snapshot's repository">
<artifact:pom file="${hadoop-core.pom}" id="hadoop.core"/>
<artifact:pom file="${hadoop-core-test.pom}" id="hadoop.core.test"/>
<artifact:install-provider artifactId="wagon-http" version="1.0-beta-2"/>
<artifact:deploy file="${hadoop-core.jar}">
<remoteRepository id="apache.snapshots.https" url="${asfrepo}"/>
<pom refid="hadoop.core"/>
</artifact:deploy>
<artifact:deploy file="${hadoop-core-test.jar}">
<remoteRepository id="apache.snapshots.https" url="${asfrepo}"/>
<pom refid="hadoop.core.test"/>
</artifact:deploy>
</target>
<target name="set-version">
<delete file="${basedir}/ivy/hadoop-core.xml"/>
<delete file="${basedir}/ivy/hadoop-core-test.xml"/>
<copy file="${basedir}/ivy/hadoop-core-template.xml" tofile="${basedir}/ivy/hadoop-core.xml"/>
<copy file="${basedir}/ivy/hadoop-core-test-template.xml" tofile="${basedir}/ivy/hadoop-core-test.xml"/>
<replaceregexp byline="true">
<regexp pattern="@version"/>
<substitution expression="${version}"/>
<fileset dir="${basedir}/ivy">
<include name="hadoop-core.xml"/>
<include name="hadoop-core-test.xml"/>
</fileset>
</replaceregexp>
</target>
<!-- ================================================================== --> <!-- ================================================================== -->
<!-- Perform audit activities for the release --> <!-- Perform audit activities for the release -->
<!-- ================================================================== --> <!-- ================================================================== -->
@ -1140,21 +1206,29 @@
<!-- ================================================================== --> <!-- ================================================================== -->
<target name="clean" depends="clean-contrib, clean-fi" description="Clean. Delete the build files, and their directories"> <target name="clean" depends="clean-contrib, clean-fi" description="Clean. Delete the build files, and their directories">
<delete dir="${build.dir}"/> <delete dir="${build.dir}"/>
<delete file="${basedir}/ivy/hadoop-core.xml"/>
<delete file="${basedir}/ivy/hadoop-core-test.xml"/>
<delete dir="${docs.src}/build"/> <delete dir="${docs.src}/build"/>
<delete dir="${src.docs.cn}/build"/> <delete dir="${src.docs.cn}/build"/>
</target> </target>
<target name="veryclean" depends="clean" description="Delete mvn ant task jar and ivy ant taks jar">
<delete file="${ant_task.jar}"/>
<delete file="${ivy.jar}"/>
</target>
<!-- ================================================================== --> <!-- ================================================================== -->
<!-- Clean contrib target. For now, must be called explicitly --> <!-- Clean contrib target. For now, must be called explicitly -->
<!-- Using subant instead of ant as a workaround for 30569 --> <!-- Using subant instead of ant as a workaround for 30569 -->
<!-- ================================================================== --> <!-- ================================================================== -->
<target name="clean-contrib"> <target name="clean-contrib">
<subant target="clean"> <subant target="clean" inheritall="true">
<fileset file="src/contrib/build.xml"/> <fileset file="src/contrib/build.xml"/>
</subant> </subant>
</target> </target>
<target name="clover" depends="clover.setup, clover.info" description="Instrument the Unit tests using Clover. To use, specify -Dclover.home=&lt;base of clover installation&gt; -Drun.clover=true on the command line."/> <target name="clover" depends="clover.setup, clover.info" description="Instrument the Unit tests using Clover.
To use, specify -Dclover.home=&lt;base of clover installation&gt; -Drun.clover=true on the command line."/>
<target name="clover.setup" if="clover.enabled"> <target name="clover.setup" if="clover.enabled">
<taskdef resource="cloverlib.xml" classpath="${clover.jar}"/> <taskdef resource="cloverlib.xml" classpath="${clover.jar}"/>
@ -1304,7 +1378,9 @@
<!--Configure Ivy by reading in the settings file <!--Configure Ivy by reading in the settings file
If anyone has already read in a settings file into this settings ID, it gets priority If anyone has already read in a settings file into this settings ID, it gets priority
--> -->
<ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override='false'/> <ivy:configure settingsid="${ant.project.name}.ivy.settings" file="${ivysettings.xml}" override='false'
realm="Sonatype Nexus Repository Manager"/>
</target> </target>
<target name="ivy-resolve" depends="ivy-init"> <target name="ivy-resolve" depends="ivy-init">
@ -1319,10 +1395,6 @@
<ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="releaseaudit"/> <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="releaseaudit"/>
</target> </target>
<target name="ivy-resolve-test-hdfswithmr" depends="ivy-init">
<ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="test-hdfswithmr" />
</target>
<target name="ivy-resolve-test" depends="ivy-init"> <target name="ivy-resolve-test" depends="ivy-init">
<ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="test" /> <ivy:resolve settingsRef="${ant.project.name}.ivy.settings" conf="test" />
</target> </target>
@ -1353,7 +1425,7 @@
</target> </target>
<target name="ivy-retrieve-jdiff" depends="ivy-resolve-jdiff" <target name="ivy-retrieve-jdiff" depends="ivy-resolve-jdiff"
description="Retrieve Ivy-managed artifacts for the javadoc configurations"> description="Retrieve Ivy-managed artifacts for the jdiff configurations">
<ivy:retrieve settingsRef="${ant.project.name}.ivy.settings" <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/> pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
<ivy:cachepath pathid="jdiff-classpath" conf="jdiff"/> <ivy:cachepath pathid="jdiff-classpath" conf="jdiff"/>
@ -1366,13 +1438,6 @@
<ivy:cachepath pathid="javadoc-classpath" conf="javadoc"/> <ivy:cachepath pathid="javadoc-classpath" conf="javadoc"/>
</target> </target>
<target name="ivy-retrieve-test-hdfswithmr" depends="ivy-resolve-test-hdfswithmr"
description="Retrieve Ivy-managed artifacts for the test configurations">
<ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
pattern="${build.ivy.lib.dir}/${ivy.artifact.retrieve.pattern}"/>
<ivy:cachepath pathid="ivy-test.classpath" conf="test-hdfswithmr"/>
</target>
<target name="ivy-retrieve-test" depends="ivy-resolve-test" <target name="ivy-retrieve-test" depends="ivy-resolve-test"
description="Retrieve Ivy-managed artifacts for the test configurations"> description="Retrieve Ivy-managed artifacts for the test configurations">
<ivy:retrieve settingsRef="${ant.project.name}.ivy.settings" <ivy:retrieve settingsRef="${ant.project.name}.ivy.settings"
@ -1402,68 +1467,4 @@
</echo> </echo>
</target> </target>
<target name="assert-hadoop-jar-exists" depends="ivy-init">
<fail>
<condition >
<not>
<available file="${hadoop-core.jar}" />
</not>
</condition>
Not found: ${hadoop-core.jar}
Please run the target "jar" in the main build file
</fail>
</target>
<target name="ready-to-publish" depends="jar,assert-hadoop-jar-exists,ivy-resolve"/>
<target name="ivy-publish-local" depends="ready-to-publish,ivy-resolve">
<ivy:publish
settingsRef="${ant.project.name}.ivy.settings"
resolver="local"
pubrevision="${version}"
overwrite="true"
artifactspattern="${build.dir}/${ivy.publish.pattern}" />
</target>
<!-- this is here for curiosity, to see how well the makepom task works
Answer: it depends whether you want transitive dependencies excluded or not
-->
<target name="makepom" depends="ivy-resolve">
<ivy:makepom settingsRef="${ant.project.name}.ivy.settings"
ivyfile="ivy.xml"
pomfile="${build.ivy.maven.dir}/generated.pom">
<ivy:mapping conf="default" scope="default"/>
<ivy:mapping conf="master" scope="master"/>
<ivy:mapping conf="runtime" scope="runtime"/>
</ivy:makepom>
</target>
<target name="copy-jar-to-maven" depends="ready-to-publish">
<copy file="${hadoop-core.jar}"
tofile="${build.ivy.maven.jar}"/>
<checksum file="${build.ivy.maven.jar}" algorithm="md5"/>
</target>
<target name="copypom" depends="ivy-init-dirs">
<presetdef name="expandingcopy" >
<copy overwrite="true">
<filterchain>
<expandproperties/>
</filterchain>
</copy>
</presetdef>
<expandingcopy file="ivy/hadoop-core.pom"
tofile="${build.ivy.maven.pom}"/>
<checksum file="${build.ivy.maven.pom}" algorithm="md5"/>
</target>
<target name="maven-artifacts" depends="copy-jar-to-maven,copypom" />
<target name="published" depends="ivy-publish-local,maven-artifacts">
</target>
</project> </project>

16
ivy.xml
View File

@ -28,7 +28,7 @@
<conf name="default" extends="master,runtime"/> <conf name="default" extends="master,runtime"/>
<conf name="master" description="contains the artifact but no dependencies"/> <conf name="master" description="contains the artifact but no dependencies"/>
<conf name="runtime" description="runtime but not the artifact" <conf name="runtime" description="runtime but not the artifact"
extends="client,server,s3-server,kfs"/> extends="client,server,s3-server,kfs,mandatory,jetty,ftp"/>
<conf name="mandatory" description="contains the critical dependencies" <conf name="mandatory" description="contains the critical dependencies"
extends="commons-logging,log4j"/> extends="commons-logging,log4j"/>
@ -50,18 +50,15 @@
extends="mandatory"/> extends="mandatory"/>
<conf name="jetty" description="Jetty provides the in-VM HTTP daemon" extends="commons-logging"/> <conf name="jetty" description="Jetty provides the in-VM HTTP daemon" extends="commons-logging"/>
<conf name="common" extends="runtime,mandatory,httpclient,ftp,jetty"
description="common artifacts"/>
<!--Testing pulls in everything-->
<conf name="test" extends="master,common" description="the classpath needed to run tests"/>
<!--Private configurations. --> <!--Private configurations. -->
<conf name="common" visibility="private" extends="runtime,mandatory,httpclient,ftp,jetty"
description="common artifacts"/>
<conf name="javadoc" visibility="private" description="artiracts required while performing doc generation" <conf name="javadoc" visibility="private" description="artiracts required while performing doc generation"
extends="common,mandatory,jetty,lucene"/> extends="common,mandatory,jetty,lucene"/>
<!--Testing pulls in everything-->
<conf name="test" extends="common,s3-server,kfs" visibility="private"
description="the classpath needed to run tests"/>
<conf name="test-hdfswithmr" extends="test" visibility="private"
description="the classpath needed to run tests"/>
<conf name="releaseaudit" visibility="private" <conf name="releaseaudit" visibility="private"
description="Artifacts required for releaseaudit target"/> description="Artifacts required for releaseaudit target"/>
@ -296,5 +293,4 @@
conf="common->default"> conf="common->default">
</dependency> </dependency>
</dependencies> </dependencies>
</ivy-module> </ivy-module>

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<packaging>jar</packaging>
<version>@version</version>
<dependencies>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>xmlenc</groupId>
<artifactId>xmlenc</artifactId>
<version>0.52</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>commons-el</groupId>
<artifactId>commons-el</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jets3t</groupId>
<artifactId>jets3t</artifactId>
<version>0.7.1</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api-2.5</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>net.sf.kosmosfs</groupId>
<artifactId>kfs</artifactId>
<version>0.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>avro</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core-test</artifactId>
<packaging>jar</packaging>
<version>@version</version>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>@version</version>
</dependency>
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftplet-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
<version>2.0.0-M5</version>
</dependency>
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftpserver-core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftpserver-deprecated</artifactId>
<version>1.0.0-M2</version>
</dependency>
</dependencies>
</project>

53
ivy/hadoop-core-test.xml Normal file
View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core-test</artifactId>
<packaging>jar</packaging>
<version>0.22.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>0.22.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftplet-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.mina</groupId>
<artifactId>mina-core</artifactId>
<version>2.0.0-M5</version>
</dependency>
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftpserver-core</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.ftpserver</groupId>
<artifactId>ftpserver-deprecated</artifactId>
<version>1.0.0-M2</version>
</dependency>
</dependencies>
</project>

127
ivy/hadoop-core.xml Normal file
View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You 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.
-->
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<packaging>jar</packaging>
<version>0.22.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>xmlenc</groupId>
<artifactId>xmlenc</artifactId>
<version>0.52</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
<version>5.5.12</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-api-2.1</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jsp-2.1</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>commons-el</groupId>
<artifactId>commons-el</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>net.java.dev.jets3t</groupId>
<artifactId>jets3t</artifactId>
<version>0.7.1</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>1.4.1</version>
</dependency>
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>servlet-api-2.5</artifactId>
<version>6.1.14</version>
</dependency>
<dependency>
<groupId>net.sf.kosmosfs</groupId>
<artifactId>kfs</artifactId>
<version>0.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.5</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>avro</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
</project>

View File

@ -1,5 +1,4 @@
<ivysettings> <ivysettings>
<!-- <!--
Licensed to the Apache Software Foundation (ASF) under one or more Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with contributor license agreements. See the NOTICE file distributed with
@ -17,65 +16,20 @@
limitations under the License. limitations under the License.
--> -->
<!-- <property name="repo.maven.org" value="http://repo1.maven.org/maven2/" override="false"/>
see http://www.jayasoft.org/ivy/doc/configuration
--> <property name="maven2.pattern" value="[organisation]/[module]/[revision]/[module]-[revision]"/>
<!-- you can override this property to use mirrors <property name="maven2.pattern.ext" value="${maven2.pattern}.[ext]"/>
http://repo1.maven.org/maven2/
http://mirrors.dotsrc.org/maven2
http://ftp.ggi-project.org/pub/packages/maven2
http://mirrors.sunsite.dk/maven2
http://public.planetmirror.com/pub/maven2
http://ibiblio.lsu.edu/main/pub/packages/maven2
http://www.ibiblio.net/pub/packages/maven2
-->
<property name="repo.maven.org"
value="http://repo1.maven.org/maven2/"
override="false"/>
<property name="snapshot.apache.org"
value="http://people.apache.org/repo/m2-snapshot-repository/"
override="false"/>
<property name="maven2.pattern"
value="[organisation]/[module]/[revision]/[module]-[revision]"/>
<property name="maven2.pattern.ext"
value="${maven2.pattern}.[ext]"/>
<!-- pull in the local repository --> <!-- pull in the local repository -->
<include url="${ivy.default.conf.dir}/ivyconf-local.xml"/> <include url="${ivy.default.conf.dir}/ivyconf-local.xml"/>
<settings defaultResolver="default"/> <settings defaultResolver="default"/>
<resolvers> <resolvers>
<ibiblio name="maven2" <!--ibiblio resolvers-->
root="${repo.maven.org}" <ibiblio name="maven2" root="${repo.maven.org}" m2compatible="true"/>
pattern="${maven2.pattern.ext}"
m2compatible="true"
/>
<ibiblio name="apache-snapshot"
root="${snapshot.apache.org}"
pattern="${maven2.pattern.ext}"
m2compatible="true"
/>
<chain name="default" dual="true"> <chain name="default" dual="true">
<resolver ref="local"/>
<resolver ref="maven2"/> <resolver ref="maven2"/>
</chain> </chain>
<chain name="internal">
<resolver ref="local"/>
</chain>
<chain name="external">
<resolver ref="maven2"/>
</chain>
<chain name="external-and-snapshots">
<resolver ref="maven2"/>
<resolver ref="apache-snapshot"/>
</chain>
</resolvers> </resolvers>
<modules>
<!--
This forces a requirement for other hadoop-artifacts to be built locally
rather than look for them online.
-->
<module organisation="org.apache.hadoop" name="Hadoop.*" resolver="internal"/>
<!--until commons cli is external, we need to pull it in from the snapshot repository -if present -->
<module organisation="org.apache.commons" name=".*" resolver="external-and-snapshots"/>
</modules>
</ivysettings> </ivysettings>

View File

@ -14,7 +14,8 @@
#It drives ivy and the generation of a maven POM #It drives ivy and the generation of a maven POM
#These are the versions of our dependencies (in alphabetical order) #These are the versions of our dependencies (in alphabetical order)
apacheant.version=1.7.0 apacheant.version=1.7.1
ant-task.version=2.0.10
avro.version=1.2.0 avro.version=1.2.0
@ -41,8 +42,7 @@ ftpserver-deprecated.version=1.0.0-M2
hsqldb.version=1.8.0.10 hsqldb.version=1.8.0.10
#ivy.version=2.0.0-beta2 ivy.version=2.1.0-rc1
ivy.version=2.0.0-rc2
jackson.version=1.0.1 jackson.version=1.0.1