commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: [Math] Compile only top-level package and below
Date Fri, 04 Sep 2015 17:30:45 GMT
On 4 September 2015 at 16:30, Gilles <gilles@harfang.homelinux.org> wrote:
> 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?

Yes, if they are example files that are not part of the component.

>> 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.

So should Ant behave the same?
And Gradle
Etc?

I think it would be very confusing if Maven failed to build source
files that happened to be in the wrong part of the source tree.

> 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
>

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


Mime
View raw message