[
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