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

Sean Owen commented on MAHOUT-874:
----------------------------------

What all classes in core depend on doesn't matter, if you are only using the 
Writables. Then, it only matters what the Writable classes depend on; unused 
classes are never loaded and have no effect. But then, it means depending on a 
jar of just the Writables doesn't change what you need at runtime, so what does 
this help for your use case? I assume it's not a runtime issue then.

It's something to do with Maven output? But what real problem is that 
causing... the availability of dependencies doesn't harm anything. It makes the 
job file bigger. But are you deploying in a case where a couple megs in a jar 
file matters? The only case I've seen where it matters is mobile apps, these 
days, and you say you don't want to use Proguard. Ted's indicating it doesn't 
save much.

Why is <exclude> so bad, this seems like what it's for. core has 12 third-party 
dependencies, and won't move much. That's not so bad even if you wanted to 
exclude each one. You could create your own (internal) artifact that is just 
"core, stripping the dependencies we don't want" that everyone can depend on.

mahout-math doesn't depend on mahout-core. I think you're proposing a circular 
dependency here (?). Which is possible. But that is symptomatic of the 
difference. I suppose you can start looking at severing more dependencies and 
breaking out even more sub-modules; now users need to figure out which of 3, 4, 
5 jars are needed.

I don't doubt this solves your problem, just asking whether it solves a more 
general need, since it is going to create small additional work for all other 
consumers or core.

Or: don't we actually need some code surgery around Cluster to actually 
accomplish what you want anyway? or else it ends up depending on core anyway.
                
> Extract Writables into a separate module to allow smaller dependencies
> ----------------------------------------------------------------------
>
>                 Key: MAHOUT-874
>                 URL: https://issues.apache.org/jira/browse/MAHOUT-874
>             Project: Mahout
>          Issue Type: Improvement
>            Reporter: Ted Dunning
>
> The theory is that we can have a smaller jar if we only include writable 
> classes and their exact dependencies.
> I have a prototype, but it has some funky characteristics which I would like 
> to discuss.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to