commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles <gil...@harfang.homelinux.org>
Subject Re: [Math] Compile only top-level package and below
Date Fri, 04 Sep 2015 15:30:59 GMT
On Fri, 4 Sep 2015 16:26:16 +0100, sebb wrote:
> On 4 September 2015 at 15:42, Gilles <gilles@harfang.homelinux.org> 
> wrote:
>> Hi.
>>
>>
>> On Fri, 4 Sep 2015 15:30:57 +0100, sebb wrote:
>>>
>>> On 4 September 2015 at 14:08, Gilles <gilles@harfang.homelinux.org> 
>>> wrote:
>>>>
>>>> Hello.
>>>>
>>>> There are two branches for Commons Math.
>>>>
>>>> For one, the top-level Java package is
>>>>   org.apache.commons.math4
>>>> For the other, it is
>>>>   org.apache.commons.math3
>>>>
>>>> Unless I'm mistaken, this should imply that maven tries to compile
>>>> only files under either
>>>>   src/main/java/org/apache/commons/math4
>>>>   src/test/java/org/apache/commons/math4
>>>> or
>>>>   src/main/java/org/apache/commons/math3
>>>>   src/test/java/org/apache/commons/math3
>>>
>>>
>>> No, Maven compiles everything under src/[main|test]/java by 
>>> default.
>>>
>>> You could change that to
>>>
>>> src/main/java/org/apache/commons/math4
>>>
>>> but then the compiler would complain about mismatched package names
>>>
>>>> But it happens that I have currently files in "math3" not 
>>>> currently
>>>> checked in into git: those are new files which git does not remove
>>>> when switching branches.
>>>
>>>
>>> That's the problem - spurious files in the workspace.
>>>
>>>> Then when starting a compilation in "master" (where the top-level
>>>> is "math4"), lots of compilation errors occur.
>>>>
>>>> The "source" top-level directories do not seem to be specified
>>>> in the project's POM.
>>>
>>>
>>> No, because Maven defaults to the standard directory layout.
>>>
>>>> Can the parent be changed in order to produce the desired 
>>>> behaviour?
>>>
>>>
>>> Well, you might be able to exclude all files under math3/math4 but 
>>> it
>>> will be tricky to do and non-standard.
>>
>>
>> But it is standard: source files must belong to the "top-level" 
>> package
>> of the project.
>
> No, that's not always the case.
> Some components have examples etc that are in a different package 
> entirely.
>
>> We don't change the top of the package hierarchy, just filter out 
>> the
>> files that do not belong to the project (as per the policy).
>
> What policy?

Do you that it's OK to have an Apache project publish files that are 
not
under the project's top-level package?

> Note that although the the Maven coordinates must change when
> top-level package names change there is no requirement for them to 
> use
> the same naming convention.
> In fact they don't - the group id is commons-math3, not math3
>
>>>
>>>> Or is there a workaround?
>>>
>>>
>>> Remove the spurious files ...
>>
>>
>> They are not "spurious".
>> They just happen to end with ".java".
>
> Yes, they are spurious because they don't belong in the workspace.
>
> It's not just java files that may cause problems.
> Unless the build workspace is "clean", various issues may occur.

I just want that maven does not to compile things under a "math3"
when the project is "math4" (and vice-versa).

That seems pretty reasonable.

Gilles


>>>> Is there a better way to handle the situation (short of manually
>>>> moving the source files back and forth)?
>>>
>>>
>>> Why not use two checkouts and switch between them instead of 
>>> switching
>>> the contents of a single checkout?
>>
>>
>> I might have to resort to that.
>> But it does not look nice (IOW why having branches if not to switch 
>> between
>> them?).
>>
>>
>> Thanks,
>> Gilles



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org


Mime
View raw message