[
https://issues.apache.org/jira/browse/HIVE-4305?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13641516#comment-13641516
]
Carl Steinbach commented on HIVE-4305:
--------------------------------------
{quote}
Both ivy and maven-ant-tasks are able to both publish to a local maven cache
and use the same codepath to publish to a maven repo as well. Ignoring
maven-ant-tasks for now, is there a need to have ivy publish it to ivy-cache
for the build, and have a separate task to publish to a maven repo? Couldn't we
streamline this to have ivy just publish and pull from the local maven cache?
{quote}
We use a separate task to publish to a remote maven repository because this
operation requires the user to supply credentials. I also think it makes sense
for the "jar" target to publish to the local ivy repository by default since
this allows us to leverage Ivy configuration defaults, and as a result I think
it's probably less fragile than the alternative option. However, we can also
supply an alternative ivysettings file that points to the local Maven
repository, thus giving users the option of using this repository if they want
to.
{quote}
Here, the properties seem to be read and parsed after the version is set, so
it's usable inside this pom.xml. However, for the child pom.xml files, inside
hcatalog-pig-adaptor, for example, we have to refer to the parent pom.xml, but
at the time we encounter this pom.xml, we either need to specify its version,
and then say that its parent is the same version, or we have to skip specifying
its version, and specify the parent's version before it can load the parent
pom.xml. What this means is that either way, I wind up explicitly having a line
in there with "0.12.0-SNAPSHOT".
{quote}
Ivy allows you to define properties in the ivysettings file, and also gives you
option of sourcing other properties files. Properties which are defined in the
ivysettings file can be referenced in any ivy.xml file. In a minute I will
attach a patch which demonstrates this in action: Hive's ivysettings file
sources build.properties and libraries.properties, and the ivy.xml files in
turn references ${version} instead of using a hardcoded version value.
> Use a single system for dependency resolution
> ---------------------------------------------
>
> Key: HIVE-4305
> URL: https://issues.apache.org/jira/browse/HIVE-4305
> Project: Hive
> Issue Type: Improvement
> Components: Build Infrastructure, HCatalog
> Reporter: Travis Crawford
> Assignee: Carl Steinbach
>
> Both Hive and HCatalog use ant as their build tool. However, Hive uses ivy
> for dependency resolution while HCatalog uses maven-ant-tasks. With the
> project merge we should converge on a single tool for dependency resolution.
--
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