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

bhashit parikh edited comment on BIGTOP-1269 at 5/25/14 5:18 AM:
-----------------------------------------------------------------

I see what you are saying. However, we cannot have optional dependencies. To 
have real optional dependencies the way you are suggesting, we would need to 
mess with the source-sets to exclude/include certain packages/classes based on 
parameters that are specified/omitted when running gradle commands. We can do 
that, but if we go down that path, things will get too messy. 

I am not talking about the optional dependencies of {{maven}}.  Let me explain. 
We can make sure that each kind of build (e.g. for {{pig}} profile) is built 
with a specific version of dependencies. However, if we have any source-code 
that depends on some external library (e.g. {{mahout}}), we can't leave out 
that dependency entirely. The source won't compile unless the some version of 
that dependency is at least specified. So, if we keep any source-code that 
depends on {{mahout}}, we'll need a {{mahout}} dependency. The same goes for 
{{hive}}. However, to get around this, and achieve what you are saying, we can 
just specify the publicly available versions of {{mahout-core}} as a 
dependency. This will allow any existing sources/tests to compile. These won't 
work when running against {{hadoop 2.x}}, but since we don't want to run them 
right now, we can just disable the integration-tests for {{mahout}} and 
{{hive}} for now. 

Although, based on what I understand, I think the real solution is to have each 
module as a subproject or something. {{bigpetstore}} being the parent project 
with all the common behavior and the a sub-project each for {{pig}}, {{hive}} 
and others. Each sub-project gets included and excluded based on the parameters 
that we provide, or through the {{settings.gradle}} file. This way, we can have 
a clean separation of configurations. I am not sure whether this is what you 
want. If we want to do this, I'll need to discuss a few more things with you 
and think it through.

Does this make sense?


was (Author: bhashit):
I see what you are saying. However, we cannot have optional dependencies. I am 
not talking about the optional dependencies of {{maven}}.  Let me explain. We 
can make sure that each kind of build (e.g. for {{pig}} profile) is built with 
a specific version of dependencies. However, if we have any source-code that 
depends on some external library (e.g. {{mahout}}), we can't leave out that 
dependency entirely. The source won't compile unless the some version of that 
dependency is at least specified. So, if we keep any source-code that depends 
on {{mahout}}, we'll need a {{mahout}} dependency. The same goes for {{hive}}. 
However, to get around this, and achieve what you are saying, we can just 
specify the publicly available versions of {{mahout-core}} as a dependency. 
This will allow any existing sources/tests to compile. These won't work when 
running against {{hadoop 2.x}}, but since we don't want to run them right now, 
we can just disable the integration-tests for {{mahout}} and {{hive}} for now. 
Does this make sense?

> BigPetStore: Create build w/ gradle
> -----------------------------------
>
>                 Key: BIGTOP-1269
>                 URL: https://issues.apache.org/jira/browse/BIGTOP-1269
>             Project: Bigtop
>          Issue Type: Improvement
>          Components: Blueprints
>    Affects Versions: backlog
>            Reporter: jay vyas
>         Attachments: BIGTOP-1269.patch, BIGTOP-1269.patch
>
>
> Lets port the BigPetStore build to gradle for all the obvious reasons.  This 
> port might cause some minor breakage of other parallel efforts that change 
> the pom file.
> The gradle ported build should contain: 
> - a "test" phase which runs the custom data set generator
> - a "integration test - pig" phase which runs the pig data cleaner + 
> aggrergator. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to