ranger-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sailaja Polavarapu <spolavar...@hortonworks.com>
Subject Re: Ranger mvn build parameters...
Date Fri, 26 Oct 2018 18:37:32 GMT
Latest patch: https://issues.apache.org/jira/secure/attachment/12945681/0001-RANGER-2265-Added-all-the-modules-for-linux-profile-.patch

More analysis on the root cause of build failure on linux environment:
1. [ERROR] Could not find goal 'assembly' in plugin org.apache.maven.plugins:maven-assembly-plugin:3.0.0
among available goals help, single -> [Help 1]
	a. This error is because, for the linux profile, we are not specifying any maven-assembly-plugin
version. Hence "maven-assembly-plugin:3.0.0" is picked based on the maven version that is
available on the system. Before RANGER-2243 changes there is a common assembly-plugin section
with version 2.2-beta-5 (under pluginManagement section) in root pom.xml which is applied
for all the profiles by default. Hence this issue is not seen before RANGER-2243.
	b. Why this error is seen only on linux env, is because, according to maven documentation,
there are multiple ways to activate a particular profile and each are applied based on particular
priority. In pom.xml, any profile with <os> <family> is given higher priority
than the profile marked <activeByDefault> as true. <os><family> is computed
based on the environment the code is built/packaged. Since we have only one profile with <os>
<family> as linux, this profiles is applied only on the linux environments and is taking
precedence than "all" profile even though it is marked <activeByDefault> true. But in
mac environment, there is no other profile with <os> <family> that matches the
environment, "all" profile is used as the active profile. 

2. Initial fix that is provided by Qiang Zhang (https://issues.apache.org/jira/secure/attachment/12945374/0001-RANGER-2265-To-make-the-profile-all-to-be-active-by-.patch)
	a. With this fix, the <os> <family> activation tag is removed. So the profile
that is marked <activeByDefault> true ("all" in this case) will be used as the active
profile for all the environments. But the issue with this patch is that, "unixauthnative"
module will not be built by default in the linux environments. In order to build "unixauthnative"
module on linux, "-Plinux" option has to be provided.

After doing some more research, in order to keep the default behavior consistent on all the
environments as pre RANGER-2243 changes, I think we need to create two different default profiles
for linux and non-linux environments. The latest patch I uploaded (https://issues.apache.org/jira/secure/attachment/12945681/0001-RANGER-2265-Added-all-the-modules-for-linux-profile-.patch)
contains those changes.
1. On non-linux environments, we have "all" profile which is marked <activeByDefault>
true. This profile builds/packages all the modules except "unixauthnative" module.
2. On linux environment, we have "linux" profile with <os> <family> activation
tag whis will be the default active profile. This profile builds/packages all the modules
including "unixauthnative" module.

Hope this explanation makes sense. If anyone has better suggestions, please feel free to provide.


On 10/25/18, 9:09 PM, "Don Bosco Durai" <bosco@apache.org> wrote:

    There are 2 patches. Any specific one you want me to try it out?
    On 10/25/18, 5:18 PM, "Sailaja Polavarapu" <spolavarapu@hortonworks.com> wrote:
        Hi, Bosco,
         I updated a new patch to https://issues.apache.org/jira/browse/RANGER-2265. Can you
give it a try? 
        On 10/25/18, 2:22 PM, "Don Bosco Durai" <bosco@apache.org> wrote:
            Yes, I am using Linux based Docker.
            Thanks for looking into it.
            On 10/25/18, 2:09 PM, "Sailaja Polavarapu" <spolavarapu@hortonworks.com>
                From the following documentation it looks like profile with OS family takes
                Profiles can also be active by default using a configuration like the following:
                This profile will automatically be active for all builds unless another profile
in the same POM is activated using one of the previously described methods. All profiles that
are active by default are automatically deactivated when a profile in the POM is activated
on the command line or through its activation config.
                If you are compiling on linux, then you see this issue as the profile with
os family is taking precedence. If you are compiling in mac, we don’t see this issue. One
more solution that is specified in the above document is to use settings.xml to specify active
                On 10/25/18, 11:21 AM, "Velmurugan Periasamy" <vel@apache.org> wrote:
                    I am able to build locally using the below command (no change) even after
                    mvn clean compile package install assembly:assembly
                    Could it be related to maven version?  I am using maven 3.3.9 and it is
picking up the right maven-assembly-plugin (2.2-beta-5) specified in pom.xml. Not sure why
you are picking up 3.0.0?
                    From: Ramesh Mani <rmani@hortonworks.com>
                    Sent: Thursday, October 25, 2018 2:15 PM
                    To: dev@ranger.apache.org
                    Subject: Re: Ranger mvn build parameters...
                    Hi Bosco,
                    JIRA https://issues.apache.org/jira/browse/RANGER-2265 is raised for
                    addressing this. If this patch works we don¹t  need to updated
                    On 10/23/18, 10:22 PM, "Don Bosco Durai" <bosco@apache.org> wrote:
                    >Seems after https://issues.apache.org/jira/browse/RANGER-2243 patch,
                    >need to pass -Pall to the build.
                    >Without that, I am getting this error:
                    >mvn -DskipTests=true clean compile package install assembly:assembly
                    >[ERROR] Could not find goal 'assembly' in plugin
                    >org.apache.maven.plugins:maven-assembly-plugin:3.0.0 among available
                    >goals help, single -> [Help 1]
                    >Can we change the public documentation with additional details? Seems
                    >need to change quite a few places:
                    >There are other places also.

View raw message