My understanding is that you suggested to change the artifact names from e.g. 
"uimaj-core" to "uimaj-core-j".

If that is done, then Maven can no longer figure out that uimaj-core:2.10.2 and 
uimaj-core-j:1.0.0 are mutually exclusive because - because the contain the 
same Java packages.

So if the artifact ID is changed, then the package names should be changed. 
Apache Commons projects do this from time to time.
E.g. 

- commons-lang:2.x  has the package name "org.apache.commons.lang"
- commons-lang3:3.x has the package name "org.apache.commons.lang3"

Having the same package in different artifacts defies Mavens dependency 
resolution process. It may be necessary to add explicit "excludes" to POMs to 
avoid dragging in incompatible UIMAv2 dependencies just because they have a 
different artifact ID.

I believe we already  had the discussion of v2 and v3 co-existing at runtime 
(as e.g. commons-lang and commons-lang3 do) and it was decided that it would be 
too much effort. So the logical path to follow seems to me to continue with the 
existing group/artifactIds at version 3.

We can continue doing releases of version 2.x and version 3.x artifacts from 
different branches in the repo.

The only thing you need to observe is that if you want to import the v2 and the 
v3 branch simultaneously into the same Eclipse workspace, you need to change 
the project naming pattern in the "Import existing Maven projects" dialog, so 
that e.g. v2 modules are imported as "{artifactId}-v2" and v3 modules as 
"{artifactId}-v3".

-- Richard

> On 16.01.2018, at 19:34, Marshall Schor <[email protected]> wrote:
> 
> or perhaps you might mean changing the artifact name
> 
> org.apache.uima  :  uimaj-core   : 3.0.0
> org.apache.uima  :  uimaj-core-j : 1.0.0
> 
> In this example, following a (weak) convention of suffixing "-j" to indicate 
> the uima-v3 redesign version, and noting it could start with version 1.0.0...
> 
> -Marshall 
> 
> 
> On 1/16/2018 1:26 PM, Marshall Schor wrote:
>> By changing the "package names" - do you mean Java package names?
>>   e.g., we have org.apache.uima.UIMAFramework (class);
>>   what might be an alternative package name?
>> 
>> Or do you mean a different maven coordinate "group" name?
>> 
>> org.apache.uima  :  uimaj-core   : 3.0.0
>>     (group)      : (artifact-id) : version
>> 
>> -Marshall

Reply via email to