[ 
https://issues.apache.org/jira/browse/HADOOP-5107?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12759460#action_12759460
 ] 

Giridharan Kesavan commented on HADOOP-5107:
--------------------------------------------

bq. The patch doesn't work when we go off-line for subsequent runs. The 
off-line feature is missing in all the projects. Without this feature, it tries 
to download maven-ant-tasks.jar itself again and gets stuck. 

ivy doesnt work offline. Everytime we do a build whether the dependencies are 
present in the cache or not it goes and verifies the repo. If the dependencies 
are present locally it doesn't download. Same is the case with 
mvn-ant-task.jar. It doesnt download the jar everytime as usetimestamp is set 
to true.

bq. In many files, in particular the ivy.xml files of contrib projects, most of 
the changes are not required and are redundant as the patch removes them and 
simply adds them again changing the format into a single line. Undoing these 
changes will greatly reduce the patch size 

When dependencies are put in a single line the ivy.xml file looks refined and 
re-formatting would greatly help in understanding. 
 
bq. In mapreduce and hdfs ivy.xml files, some cleanup is done. The earlier 
client and server specific dependencies looked good and natural too. Did you 
remove that because the classification was premature or it didn't gel well with 
your changes? 

This patch uses maven and ivy for publishing and resolving resp. Ivy work's on 
configuration while maven works on scope. I 've tried my best to utilize best 
of both the worlds.

bq. mapreduce build.xml: Do we need separate mvn-install and 
mvn-install-mapred? Even if it is needed, mvn-install should depend on 
mvn-install-mapred. A case of reuse.  
Until last couple of days hdfs depended on both mapred and common. And mapred 
depended on hdfs and common.  Hence we had a situation to publish only mapred 
and hdfs jar and not the corresponding test jars. I didn't want to re-use the 
mvn-install-mapred target as I was expected to cleanup this target once the 
circular dependency issue is resolved.

bq. common project: Should we take this as an opportunity and rename the core 
jar to common jar before publishing? It looks odd the project name is common 
while the jar's name refers to core. 
That would be quite a work and I would defn. want that to be in a diff jira.

bq. I think that in both mapred and hdfs, clean-cache should not delete the 
whole ${user.home}/.ivy2/cache/org.apache.hadoop/hadoop-core directory for 
example. It works for now, but different projects may work with different 
versions of the jar, so mapred's clean-cache should only delete the 
corresponding version of the jar. Same with the other directories in the cache. 
Thoughts? 
Its not just the jar files that the cache stores, it also converts the poms and 
stores them as ivy.xml files for different ivy configurations. And the best way 
to clean them up is to clean the corresponding artifact folder in the cache.

bq.Should `ant clean` delete maven-ant-tasks.jar every time? I guess not. 
When I call ant clean I would defn. expect a clean workspace. 
Also there is a different reason. I ve seen ppl doing a ctrl-c half way when 
the ivy/maven-ant-task. jar is downloading. So the jar is partially downloaded. 
Next time when a user runs the build and the build fails for the jar file being 
corrupt, they have to go delete them manually.

Thanks for the comments.

> split the core, hdfs, and mapred jars from each other and publish them 
> independently to the Maven repository
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-5107
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5107
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: build
>    Affects Versions: 0.20.0
>            Reporter: Owen O'Malley
>            Assignee: Giridharan Kesavan
>         Attachments: common-trunk-v1.patch, common-trunk-v4.patch, 
> common-trunk.patch, hadoop-hdfsd-v4.patch, hdfs-trunk-v1.patch, 
> hdfs-trunk-v2.patch, hdfs-trunk.patch, mapred-trunk-v1.patch, 
> mapred-trunk-v2.patch, mapred-trunk-v3.patch, mapred-trunk-v4.patch, 
> mapred-trunk-v5.patch, mapreduce-trunk.patch
>
>
> I think to support splitting the projects, we should publish the jars for 
> 0.20.0 as independent jars to the Maven repository 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to