You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Colin Patrick McCabe (JIRA)" <ji...@apache.org> on 2016/01/13 02:36:39 UTC

[jira] [Updated] (HADOOP-8887) Use a Maven plugin to build the native code using CMake

     [ https://issues.apache.org/jira/browse/HADOOP-8887?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Colin Patrick McCabe updated HADOOP-8887:
-----------------------------------------
    Attachment: HADOOP-8887.012.patch

I rebased this on current trunk and removed some of the hacks that were needed for jdk6.  This now integrates with the code in hadoop-maven-plugins.

I think this JIRA is important because the current method of calling cmake via bash will not work for Windows.  Once this plugin is established, we will be able to add Windows support fairly easily in a follow-on JIRA, and no longer have to maintain a separate native build process for Windows.

The plugin also makes running native unit tests straightforward and natural.  We no longer have to duplicate the SKIPTESTS handling and the cmake 2.6 hack everywhere, but can have them in just one place-- the cmake plugin itself.

With the cmakebuilder maven plugin, you can now run all native unit tests via:
{code}
mvn test -Pnative -Dtest=allNative
{code}

or a specific native unit test via:
{code}
mvn test -Pnative -Dtest=test_bulk_crc32
{code}
(or whatever other native unit test name you have, clearly)  The stdout and stderr show up in .stdout and .stderr files, respectively.  Test timeouts are enforced and we track the exit codes.

> Use a Maven plugin to build the native code using CMake
> -------------------------------------------------------
>
>                 Key: HADOOP-8887
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8887
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: build
>    Affects Versions: 2.0.3-alpha
>            Reporter: Colin Patrick McCabe
>            Assignee: Colin Patrick McCabe
>            Priority: Minor
>         Attachments: HADOOP-8887.001.patch, HADOOP-8887.002.patch, HADOOP-8887.003.patch, HADOOP-8887.004.patch, HADOOP-8887.005.patch, HADOOP-8887.006.patch, HADOOP-8887.008.patch, HADOOP-8887.011.patch, HADOOP-8887.012.patch
>
>
> Currently, we build the native code using ant-build invocations.  Although this works, it has some limitations:
> * compiler warning messages are hidden, which can cause people to check in code with warnings unintentionally
> * there is no framework for running native unit tests; instead, we use ad-hoc constructs involving shell scripts
> * the antrun code is very platform specific
> * there is no way to run a specific native unit test
> * it's more or less impossible for scripts like test-patch.sh to separate a native test failing from the build itself failing (no files are created) or to enumerate which native tests failed.
> Using a native Maven plugin would overcome these limitations.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)