[ 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