[ 
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

Reply via email to