On May 8, 2013, at 9:03 PM, "Chen, Pei" <[email protected]> wrote:
> I finally got a chance to look into this again, but noticed 2 things:
> 1) The various TypeSystem.xml files doesn't/shouldn't need to be in the 
> resource/models projects.  I think that was an oversight on my part last time.

Yeah, I agree that The TypeSystem should be in the main project, not the -res 
project.

> 2) I noticed that some of the projects have drivers or main classes which I 
> assume a lot of folks are able to and plan to run pipelines directly from 
> individual projects.  If this is true, then I think it is actually easier to 
> leave it as is and default to have the corresponding -res dependency in the 
> pom.xml.  Since it's maven controlled now, an external app can always add  
> <exclude ctakes-drug-ner-res/>.  This is just based on observation--  
> otherwise, each project will need to think about *-res during runtime if it's 
> not in the pom.xml. 

I think we absolutely want each project to think about *-res. Isn't that the 
whole point of the *-res decomposition?

My experience with <exclude> is that it usually comes back to bite you. For 
example, imagine that project A depends on ctakes-lvg, but excludes the -res 
dependency, and then project B depends on project A but wants ctakes-lvg plus 
the -res dependency. My experience in the past was that in scenarios like this, 
the <exclude> messed things up for me. Maybe Maven's gotten better about this 
(or maybe I know how to handle this better now), but my experience is that 
<exclude> and transitive dependencies get complicated very quickly.

I would argue that instead, anything that actually uses the models should be in 
the -res project. That way, there's no confusion. Are you just using the code? 
Then use the regular project. Are you using models? Then use the -res project 
(which would depend on the regular project).

If we assume that most people want the models, then maybe instead of adding 
"-res" to the projects that contain the models, we should add "-base" (or 
whatever) to the projects that don't contain the models?

Steve


> 
> Updated in r.1480409  
> 
>> -----Original Message-----
>> From: Chen, Pei [mailto:[email protected]]
>> Sent: Thursday, April 11, 2013 8:59 PM
>> To: [email protected]
>> Subject: RE: Aren't the *-res dependencies backwards?
>> 
>> Steve,
>> I think that would make sense...  should be fairly straightforward and
>> transparent change.  I can take a closer look next week with a clear mind.
>> ________________________________________
>> From: Steven Bethard [[email protected]]
>> Sent: Thursday, April 11, 2013 10:46 AM
>> To: [email protected]
>> Subject: Aren't the *-res dependencies backwards?
>> 
>> On Apr 11, 2013, at 8:05 AM, "Masanz, James J."
>> <[email protected]> wrote:
>>> 
>>> And ctakes-drug-ner-res is listed within the Maven Dependencies for
>> ctakes-drug-ner
>> 
>> Shouldn't it be exactly the opposite of this? Shouldn't ctakes-drug-ner-res
>> depend on ctakes-drug-ner? Otherwise, Maven's always going to pull in
>> ctakes-drug-ner-res whenever you use ctakes-drug-ner. I.e. with the current
>> setup, it's impossible to depend on just the code, not the models.
>> 
>> Steve
> 

Reply via email to