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

Eric Yang commented on HADOOP-6671:
-----------------------------------

The directory structure is designed by artifact file type.  This will introduce 
more latency for building optional parts in the commit build.  It would be 
better to use profile to control the artifact output type.  For example, docs, 
tar, rpm, and deb are just different profiles.  This would shrink the directory 
structures to look like this:

{noformat}
trunk/pom.xml
|
|-- common/pom.xml
|         /src/packages/deb
|         /src/packages/rpm
|         /src/packages/tar
|         /src/docs/site
|         /src/docs/javadoc
|
|-- hdfs/dfsclient
|       /namenode
|       /datanode
|
|-- mapreduce
|
|-- hadoop
{noformat}

Using profile would ensure that package generation code or javadoc generation 
code are defined in one central place to reduce repetitive building/packaging 
code.  HBase has profiles to control rpm/deb/tarball generation code, and it 
may be useful as a reference.  Where hadoop is the aggregating submodule that 
copies artifacts from common, hdfs, mapreduce to create a release.  I will port 
the ant rpm/deb work to maven after your patch is committed.

> To use maven for hadoop common builds
> -------------------------------------
>
>                 Key: HADOOP-6671
>                 URL: https://issues.apache.org/jira/browse/HADOOP-6671
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: build
>    Affects Versions: 0.22.0
>            Reporter: Giridharan Kesavan
>            Assignee: Alejandro Abdelnur
>         Attachments: HADOOP-6671-cross-project-HDFS.patch, 
> HADOOP-6671-e.patch, HADOOP-6671-f.patch, HADOOP-6671-g.patch, 
> HADOOP-6671-h.patch, HADOOP-6671-i.patch, HADOOP-6671-j.patch, 
> HADOOP-6671-k.sh, HADOOP-6671-l.patch, HADOOP-6671-m.patch, 
> HADOOP-6671-n.patch, HADOOP-6671-o.patch, HADOOP-6671-p.patch, 
> HADOOP-6671-q.patch, HADOOP-6671.patch, HADOOP-6671b.patch, 
> HADOOP-6671c.patch, HADOOP-6671d.patch, build.png, common-mvn-layout-i.sh, 
> hadoop-commons-maven.patch, mvn-layout-e.sh, mvn-layout-f.sh, 
> mvn-layout-k.sh, mvn-layout-l.sh, mvn-layout-m.sh, mvn-layout-n.sh, 
> mvn-layout-o.sh, mvn-layout-p.sh, mvn-layout-q.sh, mvn-layout.sh, 
> mvn-layout.sh, mvn-layout2.sh, mvn-layout2.sh
>
>
> We are now able to publish hadoop artifacts to the maven repo successfully [ 
> Hadoop-6382]
> Drawbacks with the current approach:
> * Use ivy for dependency management with ivy.xml
> * Use maven-ant-task for artifact publishing to the maven repository
> * pom files are not generated dynamically 
> To address this I propose we use maven to build hadoop-common, which would 
> help us to manage dependencies, publish artifacts and have one single xml 
> file(POM) for dependency management and artifact publishing.
> I would like to have a branch created to work on mavenizing  hadoop common.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to