hive-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Travis Crawford (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HIVE-4278) HCat needs to get current Hive jars instead of pulling them from maven repo
Date Wed, 03 Apr 2013 23:59:16 GMT

    [ https://issues.apache.org/jira/browse/HIVE-4278?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13621544#comment-13621544
] 

Travis Crawford commented on HIVE-4278:
---------------------------------------

Here are more details about the proposal - this is excerpted from the HCatalog build.

In [hcatalog/build-support/ant/build-common.xml|http://svn.apache.org/repos/asf/hive/trunk/hcatalog/build-support/ant/build-common.xml]
we see how HCatalog creates a jar. In addition to creating the jar we [install:http://maven.apache.org/ant-tasks/examples/install-deploy.html]
into the local maven repo.

{code}
  <target name="jar" depends="mvn-dependencies,compile,compile-resource">
    <echo message="${ant.project.name}"/>
    <jar jarfile="${build.dir}/${jar.name}" basedir="${build.classes}">
      <metainf dir="${path.to.basedir}" includes="**/LICENSE.txt,**/NOTICE.txt"/>
    </jar>
    <artifact:install file="${build.dir}/${ant.project.name}-${hcatalog.version}.jar">
      <artifact:pom file="${pom.file}"/>
      <artifact:localRepository path="${mvn.local.repo}"/>
    </artifact:install>
  </target>
{code}

In Hive's existing [build-common.xml|http://svn.apache.org/repos/asf/hive/trunk/build-common.xml]
we see how things currently work. Notice how we publish to the "local" Ivy repo.

{code}
  <target name="jar" depends="compile">
    <echo message="Project: ${ant.project.name}" />
    <jar
      jarfile="${build.dir}/hive-${ant.project.name}-${version}.jar"
      basedir="${build.classes}">
      <manifest>
        <!-- Not putting these in their own manifest section, since that inserts
        a new-line, which breaks the reading of the attributes. -->
        <attribute name="Implementation-Title" value="Hive"/>
        <attribute name="Implementation-Version" value="${version}"/>
        <attribute name="Implementation-Vendor" value="Apache"/>
      </manifest>
      <metainf dir="${hive.root}" includes="LICENSE,NOTICE"/>
    </jar>
    <ivy:publish settingsRef="${ant.project.name}.ivy.settings"
                 resolver="local" pubrevision="${version}" overwrite="true"
                 artifactspattern="${build.dir}/${ivy.publish.pattern}"/>
  </target>
{code}

We see they're quite similar, and we should definitely look to merge the build files so its
maintainable and feels less "bolted on" over time. This would be a pretty targeted change,
simply changing where we publish SNAPSHOT jars, and a resolver change to always check the
local maven repo for changing artifacts.

Its worth noting the Hive build already uses maven ant tasks when publishing artifacts to
a remote maven repo. See {{maven-publish-artifact}} in [build.xml|http://svn.apache.org/repos/asf/hive/trunk/build.xml]
for details. There would likely be some build file refactoring, but overall not too major
a change.
                
> HCat needs to get current Hive jars instead of pulling them from maven repo
> ---------------------------------------------------------------------------
>
>                 Key: HIVE-4278
>                 URL: https://issues.apache.org/jira/browse/HIVE-4278
>             Project: Hive
>          Issue Type: Sub-task
>          Components: Build Infrastructure, HCatalog
>    Affects Versions: 0.11.0
>            Reporter: Alan Gates
>            Priority: Blocker
>             Fix For: 0.11.0
>
>
> The HCatalog build is currently pulling Hive jars from the maven repo instead of using
the ones built as part of the current build.  Now that it is part of Hive it should use the
jars being built instead of pulling them from maven.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message